diff --git a/DESCRIPTION b/DESCRIPTION
index a6327fbb1..100fa1263 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
Package: shiny
Type: Package
Title: Web Application Framework for R
-Version: 1.0.5.9000
+Version: 1.1.0.9001
Authors@R: c(
person("Winston", "Chang", role = c("aut", "cre"), email = "winston@rstudio.com"),
person("Joe", "Cheng", role = "aut", email = "joe@rstudio.com"),
@@ -65,7 +65,7 @@ Depends:
Imports:
utils,
grDevices,
- httpuv (>= 1.4.0),
+ httpuv (>= 1.4.3.9001),
mime (>= 0.3),
jsonlite (>= 0.9.16),
xtable,
@@ -89,7 +89,10 @@ Suggests:
magrittr
URL: http://shiny.rstudio.com
BugReports: https://github.com/rstudio/shiny/issues
-Collate:
+Remotes:
+ tidyverse/ggplot2,
+ rstudio/httpuv
+Collate:
'app.R'
'bookmark-state-local.R'
'stack.R'
@@ -100,7 +103,10 @@ Collate:
'map.R'
'utils.R'
'bootstrap.R'
- 'cache.R'
+ 'cache-context.R'
+ 'cache-disk.R'
+ 'cache-memory.R'
+ 'cache-utils.R'
'diagnose.R'
'fileupload.R'
'graph.R'
@@ -139,6 +145,7 @@ Collate:
'priorityqueue.R'
'progress.R'
'react.R'
+ 'render-cached-plot.R'
'render-plot.R'
'render-table.R'
'run-url.R'
@@ -155,4 +162,4 @@ Collate:
'test-export.R'
'timer.R'
'update-input.R'
-RoxygenNote: 6.0.1.9000
+RoxygenNote: 6.1.0
diff --git a/NAMESPACE b/NAMESPACE
index 24aaaa6b2..6372e3209 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -25,6 +25,7 @@ S3method(as.tags,shiny.render.function)
S3method(format,reactiveExpr)
S3method(format,reactiveVal)
S3method(names,reactivevalues)
+S3method(print,key_missing)
S3method(print,reactive)
S3method(print,shiny.appobj)
S3method(str,reactivevalues)
@@ -67,6 +68,7 @@ export(dateRangeInput)
export(dblclickOpts)
export(debounce)
export(dialogViewer)
+export(diskCache)
export(div)
export(downloadButton)
export(downloadHandler)
@@ -90,6 +92,7 @@ export(fluidRow)
export(formatStackTrace)
export(freezeReactiveVal)
export(freezeReactiveValue)
+export(getCurrentOutputInfo)
export(getDefaultReactiveDomain)
export(getQueryString)
export(getShinyOption)
@@ -121,6 +124,7 @@ export(insertTab)
export(insertUI)
export(installExprFunction)
export(invalidateLater)
+export(is.key_missing)
export(is.reactive)
export(is.reactivevalues)
export(is.shiny.appobj)
@@ -128,6 +132,7 @@ export(is.singleton)
export(isRunning)
export(isTruthy)
export(isolate)
+export(key_missing)
export(knit_print.html)
export(knit_print.reactive)
export(knit_print.shiny.appobj)
@@ -138,6 +143,7 @@ export(mainPanel)
export(makeReactiveBinding)
export(markRenderFunction)
export(maskReactiveContext)
+export(memoryCache)
export(modalButton)
export(modalDialog)
export(navbarMenu)
@@ -189,6 +195,7 @@ export(removeModal)
export(removeNotification)
export(removeTab)
export(removeUI)
+export(renderCachedPlot)
export(renderDataTable)
export(renderImage)
export(renderPlot)
@@ -226,6 +233,7 @@ export(showTab)
export(sidebarLayout)
export(sidebarPanel)
export(singleton)
+export(sizeGrowthRatio)
export(sliderInput)
export(snapshotExclude)
export(snapshotPreprocessInput)
@@ -268,9 +276,13 @@ export(updateSliderInput)
export(updateTabsetPanel)
export(updateTextAreaInput)
export(updateTextInput)
+export(updateVarSelectInput)
+export(updateVarSelectizeInput)
export(urlModal)
export(validate)
export(validateCssUnit)
+export(varSelectInput)
+export(varSelectizeInput)
export(verbatimTextOutput)
export(verticalLayout)
export(wellPanel)
diff --git a/NEWS.md b/NEWS.md
index ed4dadabb..092069ef8 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,5 +1,39 @@
-shiny 1.1
-================
+shiny 1.1.0.9001
+===========
+
+## Full changelog
+
+### Minor new features and improvements
+
+* Added `renderCachedPlot()`, which stores plots in a cache so that they can be served up almost instantly. ([#1997](https://github.com/rstudio/shiny/pull/1997))
+
+* Address [#174](https://github.com/rstudio/shiny/issues/174): Added `datesdisabled` and `daysofweekdisabled` as new parameters to `dateInput()`. This resolves [#174](https://github.com/rstudio/shiny/issues/174) and exposes the underlying arguments of [Bootstrap Datepicker](http://bootstrap-datepicker.readthedocs.io/en/latest/options.html#datesdisabled). `datesdisabled` expects a character vector with values in `yyyy/mm/dd` format and `daysofweekdisabled` expects an integer vector with day interger ids (Sunday=0, Saturday=6). The default value for both is `NULL`, which leaves all days selectable. Thanks, @nathancday! ([#2147](https://github.com/rstudio/shiny/pull/2147))
+
+* Support for selecting variables of a data frame with the output values to be used within tidy evaluation. Added functions: `varSelectInput`, `varSelectizeInput`, `updateVarSelectInput`, `updateVarSelectizeInput`. ([#2091](https://github.com/rstudio/shiny/pull/2091))
+
+* Addressed [#2042](https://github.com/rstudio/shiny/issues/2042): dates outside of `min`/`max` date range are now a lighter shade of grey to highlight the allowed range. ([#2087](https://github.com/rstudio/shiny/pull/2087))
+
+* Added support for plot interaction when the plot is scaled. ([#2125](https://github.com/rstudio/shiny/pull/2125))
+
+* Fixed [#1933](https://github.com/rstudio/shiny/issues/1933): extended server-side selectize to lists and optgroups. ([#2102](https://github.com/rstudio/shiny/pull/2102))
+
+* Fixed [#1935](https://github.com/rstudio/shiny/issues/1935): correctly returns plot coordinates when using outer margins. ([#2108](https://github.com/rstudio/shiny/pull/2108))
+
+* Resolved [#2019](https://github.com/rstudio/shiny/issues/2019): `updateSliderInput` now changes the slider formatting if the input type changes. ([#2099](https://github.com/rstudio/shiny/pull/2099))
+
+* Added namespace support when freezing reactiveValue keys. [#2080](https://github.com/rstudio/shiny/pull/2080)
+
+* Fixed [#2138](https://github.com/rstudio/shiny/issues/2138): Inputs that are part of a `renderUI` were no longer restoring correctly from bookmarked state. [#2139](https://github.com/rstudio/shiny/pull/2139)
+
+* Fixed [#2093](https://github.com/rstudio/shiny/issues/2093): Make sure bookmark scope directory does not exist before trying to create it. [#2168](https://github.com/rstudio/shiny/pull/2168)
+
+### Documentation Updates
+
+* Addressed [#1864](https://github.com/rstudio/shiny/issues/1864) by changing `optgroup` documentation to use `list` instead of `c`. ([#2084](https://github.com/rstudio/shiny/pull/2084))
+
+
+shiny 1.1.0
+===========
This is a significant release for Shiny, with a major new feature that was nearly a year in the making: support for asynchronous operations! Until now, R's single-threaded nature meant that performing long-running calculations or tasks from Shiny would bring your app to a halt for other users of that process. This release of Shiny deeply integrates the [promises](https://rstudio.github.io/promises/) package to allow you to execute some tasks asynchronously, including as part of reactive expressions and outputs. See the [promises](https://rstudio.github.io/promises/) documentation to learn more.
@@ -67,6 +101,12 @@ This is a significant release for Shiny, with a major new feature that was nearl
* Updated to ion.rangeSlider 2.2.0. ([#1955](https://github.com/rstudio/shiny/pull/1955))
+
+## Known issues
+
+In some rare cases, interrupting an application (by pressing Ctrl-C or Esc) may result in the message `Error in execCallbacks(timeoutSecs) : c++ exception (unknown reason)`. Although this message sounds alarming, it is harmless, and will go away in a future version of the later package (more information [here](https://github.com/r-lib/later/issues/55)).
+
+
shiny 1.0.5
===========
@@ -278,7 +318,7 @@ Now there's an official way to slow down reactive values and expressions that in
### Minor new features and improvements
* Addressed [#1486](https://github.com/rstudio/shiny/issues/1486) by adding a new argument to `observeEvent` and `eventReactive`, called `ignoreInit` (defaults to `FALSE` for backwards compatibility). When set to `TRUE`, the action (i.e. the second argument: `handlerExpr` and `valueExpr`, respectively) will not be triggered when the observer/reactive is first created/initialized. In other words, `ignoreInit = TRUE` ensures that the `observeEvent` (or `eventReactive`) is *never* run right away. For more info, see the documentation (`?observeEvent`). ([#1494](https://github.com/rstudio/shiny/pull/1494))
-
+
* Added a new argument to `observeEvent` called `once`. When set to `TRUE`, it results in the observer being destroyed (stop observing) after the first time that `handlerExpr` is run (i.e. `once = TRUE` guarantees that the observer only runs, at most, once). For more info, see the documentation (`?observeEvent`). ([#1494](https://github.com/rstudio/shiny/pull/1494))
* Addressed [#1358](https://github.com/rstudio/shiny/issues/1358): more informative error message when calling `runApp()` inside of an app's app.R (or inside ui.R or server.R). ([#1482](https://github.com/rstudio/shiny/pull/1482))
@@ -677,7 +717,7 @@ shiny 0.12.1
shiny 0.12.0
============
-In addition to the changes listed below (in the *Full Changelog* section), there is an infrastructure change that could affect existing Shiny apps.
+In addition to the changes listed below (in the *Full Changelog* section), there is an infrastructure change that could affect existing Shiny apps.
### JSON serialization
@@ -768,13 +808,13 @@ Shiny 0.11 switches away from the Bootstrap 2 web framework to the next version,
### Known issues for migration
* In Bootstrap 3, images in `` tags are no longer automatically scaled to the width of their container. If you use `img()` in your UI code, or `` tags in your raw HTML source, it's possible that they will be too large in the new version of Shiny. To address this you can add the `img-responsive` class:
-
+
```r
img(src = "picture.png", class = "img-responsive")
```
-
+
The R code above will generate the following HTML:
-
+
```html
```
diff --git a/R/bookmark-state.R b/R/bookmark-state.R
index 73e52c754..724ae2cf3 100644
--- a/R/bookmark-state.R
+++ b/R/bookmark-state.R
@@ -448,7 +448,13 @@ withRestoreContext <- function(ctx, expr) {
# Is there a current restore context?
hasCurrentRestoreContext <- function() {
- restoreCtxStack$size() > 0
+ if (restoreCtxStack$size() > 0)
+ return(TRUE)
+ domain <- getDefaultReactiveDomain()
+ if (!is.null(domain) && !is.null(domain$restoreContext))
+ return(TRUE)
+
+ return(FALSE)
}
# Call to access the current restore context. First look on the restore
diff --git a/R/bootstrap.R b/R/bootstrap.R
index 2224f599e..445ee9b0c 100644
--- a/R/bootstrap.R
+++ b/R/bootstrap.R
@@ -1489,8 +1489,9 @@ downloadLink <- function(outputId, label="Download", class=NULL, ...) {
#' \code{\link{navbarPage}}.
#'
#' @param name Name of icon. Icons are drawn from the
-#' \href{http://fontawesome.io/icons/}{Font Awesome} and
-#' \href{http://getbootstrap.com/components/#glyphicons}{Glyphicons"}
+#' \href{https://fontawesome.com/v4.7.0/}{Font Awesome} (currently icons from
+#' the v4.7.0 set are supported) and
+#' \href{http://getbootstrap.com/components/#glyphicons}{Glyphicons}
#' libraries. Note that the "fa-" and "glyphicon-" prefixes should not be used
#' in icon names (i.e. the "fa-calendar" icon should be referred to as
#' "calendar")
diff --git a/R/cache.R b/R/cache-context.R
similarity index 100%
rename from R/cache.R
rename to R/cache-context.R
diff --git a/R/cache-disk.R b/R/cache-disk.R
new file mode 100644
index 000000000..de456e401
--- /dev/null
+++ b/R/cache-disk.R
@@ -0,0 +1,561 @@
+#' Create a disk cache object
+#'
+#' A disk cache object is a key-value store that saves the values as files in a
+#' directory on disk. Objects can be stored and retrieved using the \code{get()}
+#' and \code{set()} methods. Objects are automatically pruned from the cache
+#' according to the parameters \code{max_size}, \code{max_age}, \code{max_n},
+#' and \code{evict}.
+#'
+#'
+#' @section Missing Keys:
+#'
+#' The \code{missing} and \code{exec_missing} parameters controls what happens
+#' when \code{get()} is called with a key that is not in the cache (a cache
+#' miss). The default behavior is to return a \code{\link{key_missing}}
+#' object. This is a \emph{sentinel value} that indicates that the key was not
+#' present in the cache. You can test if the returned value represents a
+#' missing key by using the \code{\link{is.key_missing}} function. You can
+#' also have \code{get()} return a different sentinel value, like \code{NULL}.
+#' If you want to throw an error on a cache miss, you can do so by providing a
+#' function for \code{missing} that takes one argument, the key, and also use
+#' \code{exec_missing=TRUE}.
+#'
+#' When the cache is created, you can supply a value for \code{missing}, which
+#' sets the default value to be returned for missing values. It can also be
+#' overridden when \code{get()} is called, by supplying a \code{missing}
+#' argument. For example, if you use \code{cache$get("mykey", missing =
+#' NULL)}, it will return \code{NULL} if the key is not in the cache.
+#'
+#' If your cache is configured so that \code{get()} returns a sentinel value
+#' to represent a cache miss, then \code{set} will also not allow you to store
+#' the sentinel value in the cache. It will throw an error if you attempt to
+#' do so.
+#'
+#' Instead of returning the same sentinel value each time there is cache miss,
+#' the cache can execute a function each time \code{get()} encounters missing
+#' key. If the function returns a value, then \code{get()} will in turn return
+#' that value. However, a more common use is for the function to throw an
+#' error. If an error is thrown, then \code{get()} will not return a value.
+#'
+#' To do this, pass a one-argument function to \code{missing}, and use
+#' \code{exec_missing=TRUE}. For example, if you want to throw an error that
+#' prints the missing key, you could do this:
+#'
+#' \preformatted{
+#' diskCache(
+#' missing = function(key) {
+#' stop("Attempted to get missing key: ", key)
+#' },
+#' exec_missing = TRUE
+#' )
+#' }
+#'
+#' If you use this, the code that calls \code{get()} should be wrapped with
+#' \code{\link{tryCatch}()} to gracefully handle missing keys.
+#'
+#' @section Cache pruning:
+#'
+#' Cache pruning occurs when \code{set()} is called, or it can be invoked
+#' manually by calling \code{prune()}.
+#'
+#' The disk cache will throttle the pruning so that it does not happen on
+#' every call to \code{set()}, because the filesystem operations for checking
+#' the status of files can be slow. Instead, it will prune once in every 20
+#' calls to \code{set()}, or if at least 5 seconds have elapsed since the last
+#' prune occurred, whichever is first. These parameters are currently not
+#' customizable, but may be in the future.
+#'
+#' When a pruning occurs, if there are any objects that are older than
+#' \code{max_age}, they will be removed.
+#'
+#' The \code{max_size} and \code{max_n} parameters are applied to the cache as
+#' a whole, in contrast to \code{max_age}, which is applied to each object
+#' individually.
+#'
+#' If the number of objects in the cache exceeds \code{max_n}, then objects
+#' will be removed from the cache according to the eviction policy, which is
+#' set with the \code{evict} parameter. Objects will be removed so that the
+#' number of items is \code{max_n}.
+#'
+#' If the size of the objects in the cache exceeds \code{max_size}, then
+#' objects will be removed from the cache. Objects will be removed from the
+#' cache so that the total size remains under \code{max_size}. Note that the
+#' size is calculated using the size of the files, not the size of disk space
+#' used by the files -- these two values can differ because of files are
+#' stored in blocks on disk. For example, if the block size is 4096 bytes,
+#' then a file that is one byte in size will take 4096 bytes on disk.
+#'
+#' Another time that objects can be removed from the cache is when
+#' \code{get()} is called. If the target object is older than \code{max_age},
+#' it will be removed and the cache will report it as a missing value.
+#'
+#' @section Eviction policies:
+#'
+#' If \code{max_n} or \code{max_size} are used, then objects will be removed
+#' from the cache according to an eviction policy. The available eviction
+#' policies are:
+#'
+#' \describe{
+#' \item{\code{"lru"}}{
+#' Least Recently Used. The least recently used objects will be removed.
+#' This uses the filesystem's mtime property. When "lru" is used, each
+#' \code{get()} is called, it will update the file's mtime.
+#' }
+#' \item{\code{"fifo"}}{
+#' First-in-first-out. The oldest objects will be removed.
+#' }
+#' }
+#'
+#' Both of these policies use files' mtime. Note that some filesystems (notably
+#' FAT) have poor mtime resolution. (atime is not used because support for
+#' atime is worse than mtime.)
+#'
+#'
+#' @section Sharing among multiple processes:
+#'
+#' The directory for a DiskCache can be shared among multiple R processes. To
+#' do this, each R process should have a DiskCache object that uses the same
+#' directory. Each DiskCache will do pruning independently of the others, so if
+#' they have different pruning parameters, then one DiskCache may remove cached
+#' objects before another DiskCache would do so.
+#'
+#' Even though it is possible for multiple processes to share a DiskCache
+#' directory, this should not be done on networked file systems, because of
+#' slow performance of networked file systems can cause problems. If you need
+#' a high-performance shared cache, you can use one built on a database like
+#' Redis, SQLite, mySQL, or similar.
+#'
+#' When multiple processes share a cache directory, there are some potential
+#' race conditions. For example, if your code calls \code{exists(key)} to check
+#' if an object is in the cache, and then call \code{get(key)}, the object may
+#' be removed from the cache in between those two calls, and \code{get(key)}
+#' will throw an error. Instead of calling the two functions, it is better to
+#' simply call \code{get(key)}, and use \code{tryCatch()} to handle the error
+#' that is thrown if the object is not in the cache. This effectively tests for
+#' existence and gets the object in one operation.
+#'
+#' It is also possible for one processes to prune objects at the same time that
+#' another processes is trying to prune objects. If this happens, you may see
+#' a warning from \code{file.remove()} failing to remove a file that has
+#' already been deleted.
+#'
+#'
+#' @section Methods:
+#'
+#' A disk cache object has the following methods:
+#'
+#' \describe{
+#' \item{\code{get(key, missing, exec_missing)}}{
+#' Returns the value associated with \code{key}. If the key is not in the
+#' cache, then it returns the value specified by \code{missing} or,
+#' \code{missing} is a function and \code{exec_missing=TRUE}, then
+#' executes \code{missing}. The function can throw an error or return the
+#' value. If either of these parameters are specified here, then they
+#' will override the defaults that were set when the DiskCache object was
+#' created. See section Missing Keys for more information.
+#' }
+#' \item{\code{set(key, value)}}{
+#' Stores the \code{key}-\code{value} pair in the cache.
+#' }
+#' \item{\code{exists(key)}}{
+#' Returns \code{TRUE} if the cache contains the key, otherwise
+#' \code{FALSE}.
+#' }
+#' \item{\code{size()}}{
+#' Returns the number of items currently in the cache.
+#' }
+#' \item{\code{keys()}}{
+#' Returns a character vector of all keys currently in the cache.
+#' }
+#' \item{\code{reset()}}{
+#' Clears all objects from the cache.
+#' }
+#' \item{\code{destroy()}}{
+#' Clears all objects in the cache, and removes the cache directory from
+#' disk.
+#' }
+#' \item{\code{prune()}}{
+#' Prunes the cache, using the parameters specified by \code{max_size},
+#' \code{max_age}, \code{max_n}, and \code{evict}.
+#' }
+#' }
+#'
+#' @param dir Directory to store files for the cache. If \code{NULL} (the
+#' default) it will create and use a temporary directory.
+#' @param max_age Maximum age of files in cache before they are evicted, in
+#' seconds. Use \code{Inf} for no age limit.
+#' @param max_size Maximum size of the cache, in bytes. If the cache exceeds
+#' this size, cached objects will be removed according to the value of the
+#' \code{evict}. Use \code{Inf} for no size limit.
+#' @param max_n Maximum number of objects in the cache. If the number of objects
+#' exceeds this value, then cached objects will be removed according to the
+#' value of \code{evict}. Use \code{Inf} for no limit of number of items.
+#' @param evict The eviction policy to use to decide which objects are removed
+#' when a cache pruning occurs. Currently, \code{"lru"} and \code{"fifo"} are
+#' supported.
+#' @param destroy_on_finalize If \code{TRUE}, then when the DiskCache object is
+#' garbage collected, the cache directory and all objects inside of it will be
+#' deleted from disk. If \code{FALSE} (the default), it will do nothing when
+#' finalized.
+#' @param missing A value to return or a function to execute when
+#' \code{get(key)} is called but the key is not present in the cache. The
+#' default is a \code{\link{key_missing}} object. If it is a function to
+#' execute, the function must take one argument (the key), and you must also
+#' use \code{exec_missing = TRUE}. If it is a function, it is useful in most
+#' cases for it to throw an error, although another option is to return a
+#' value. If a value is returned, that value will in turn be returned by
+#' \code{get()}. See section Missing keys for more information.
+#' @param exec_missing If \code{FALSE} (the default), then treat \code{missing}
+#' as a value to return when \code{get()} results in a cache miss. If
+#' \code{TRUE}, treat \code{missing} as a function to execute when
+#' \code{get()} results in a cache miss.
+#' @param logfile An optional filename or connection object to where logging
+#' information will be written. To log to the console, use \code{stdout()}.
+#'
+#' @export
+diskCache <- function(
+ dir = NULL,
+ max_size = 10 * 1024 ^ 2,
+ max_age = Inf,
+ max_n = Inf,
+ evict = c("lru", "fifo"),
+ destroy_on_finalize = FALSE,
+ missing = key_missing(),
+ exec_missing = FALSE,
+ logfile = NULL)
+{
+ DiskCache$new(dir, max_size, max_age, max_n, evict, destroy_on_finalize,
+ missing, exec_missing, logfile)
+}
+
+
+DiskCache <- R6Class("DiskCache",
+ public = list(
+ initialize = function(
+ dir = NULL,
+ max_size = 10 * 1024 ^ 2,
+ max_age = Inf,
+ max_n = Inf,
+ evict = c("lru", "fifo"),
+ destroy_on_finalize = FALSE,
+ missing = key_missing(),
+ exec_missing = FALSE,
+ logfile = NULL)
+ {
+ if (exec_missing && (!is.function(missing) || length(formals(missing)) == 0)) {
+ stop("When `exec_missing` is true, `missing` must be a function that takes one argument.")
+ }
+ if (is.null(dir)) {
+ dir <- tempfile("DiskCache-")
+ }
+ if (!is.numeric(max_size)) stop("max_size must be a number. Use `Inf` for no limit.")
+ if (!is.numeric(max_age)) stop("max_age must be a number. Use `Inf` for no limit.")
+ if (!is.numeric(max_n)) stop("max_n must be a number. Use `Inf` for no limit.")
+
+ if (!dirExists(dir)) {
+ private$log(paste0("initialize: Creating ", dir))
+ dir.create(dir, recursive = TRUE)
+ }
+
+ private$dir <- normalizePath(dir)
+ private$max_size <- max_size
+ private$max_age <- max_age
+ private$max_n <- max_n
+ private$evict <- match.arg(evict)
+ private$destroy_on_finalize <- destroy_on_finalize
+ private$missing <- missing
+ private$exec_missing <- exec_missing
+ private$logfile <- logfile
+
+ private$prune_last_time <- as.numeric(Sys.time())
+ },
+
+ get = function(key, missing = private$missing, exec_missing = private$exec_missing) {
+ private$log(paste0('get: key "', key, '"'))
+ self$is_destroyed(throw = TRUE)
+ validate_key(key)
+
+ private$maybe_prune_single(key)
+
+ filename <- private$key_to_filename(key)
+
+ # Instead of calling exists() before fetching the value, just try to
+ # fetch the value. This reduces the risk of a race condition when
+ # multiple processes share a cache.
+ read_error <- FALSE
+ tryCatch(
+ {
+ value <- suppressWarnings(readRDS(filename))
+ if (private$evict == "lru"){
+ Sys.setFileTime(filename, Sys.time())
+ }
+ },
+ error = function(e) {
+ read_error <<- TRUE
+ }
+ )
+ if (read_error) {
+ private$log(paste0('get: key "', key, '" is missing'))
+
+ if (exec_missing) {
+ if (!is.function(missing) || length(formals(missing)) == 0) {
+ stop("When `exec_missing` is true, `missing` must be a function that takes one argument.")
+ }
+ return(missing(key))
+ } else {
+ return(missing)
+ }
+ }
+
+ private$log(paste0('get: key "', key, '" found'))
+ value
+ },
+
+ set = function(key, value) {
+ private$log(paste0('set: key "', key, '"'))
+ self$is_destroyed(throw = TRUE)
+ validate_key(key)
+
+ file <- private$key_to_filename(key)
+ temp_file <- paste0(file, "-temp-", createUniqueId(8))
+
+ save_error <- FALSE
+ ref_object <- FALSE
+ tryCatch(
+ {
+ saveRDS(value, file = temp_file,
+ refhook = function(x) {
+ ref_object <<- TRUE
+ NULL
+ }
+ )
+ file.rename(temp_file, file)
+ },
+ error = function(e) {
+ save_error <<- TRUE
+ # Unlike file.remove(), unlink() does not raise warning if file does
+ # not exist.
+ unlink(temp_file)
+ }
+ )
+ if (save_error) {
+ private$log(paste0('set: key "', key, '" error'))
+ stop('Error setting value for key "', key, '".')
+ }
+ if (ref_object) {
+ private$log(paste0('set: value is a reference object'))
+ warning("A reference object was cached in a serialized format. The restored object may not work as expected.")
+ }
+
+ private$prune_throttled()
+ invisible(self)
+ },
+
+ exists = function(key) {
+ self$is_destroyed(throw = TRUE)
+ validate_key(key)
+ file.exists(private$key_to_filename(key))
+ },
+
+ # Return all keys in the cache
+ keys = function() {
+ self$is_destroyed(throw = TRUE)
+ files <- dir(private$dir, "\\.rds$")
+ sub("\\.rds$", "", files)
+ },
+
+ remove = function(key) {
+ private$log(paste0('remove: key "', key, '"'))
+ self$is_destroyed(throw = TRUE)
+ validate_key(key)
+ file.remove(private$key_to_filename(key))
+ invisible(self)
+ },
+
+ reset = function() {
+ private$log(paste0('reset'))
+ self$is_destroyed(throw = TRUE)
+ file.remove(dir(private$dir, "\\.rds$", full.names = TRUE))
+ invisible(self)
+ },
+
+ prune = function() {
+ # TODO: It would be good to add parameters `n` and `size`, so that the
+ # cache can be pruned to `max_n - n` and `max_size - size` before adding
+ # an object. Right now we prune after adding the object, so the cache
+ # can temporarily grow past the limits. The reason we don't do this now
+ # is because it is expensive to find the size of the serialized object
+ # before adding it.
+
+ private$log(paste0('prune'))
+ self$is_destroyed(throw = TRUE)
+
+ current_time <- Sys.time()
+
+ filenames <- dir(private$dir, "\\.rds$", full.names = TRUE)
+ info <- file.info(filenames)
+ info <- info[info$isdir == FALSE, ]
+ info$name <- rownames(info)
+ rownames(info) <- NULL
+ # Files could be removed between the dir() and file.info() calls. The
+ # entire row for such files will have NA values. Remove those rows.
+ info <- info[!is.na(info$size), ]
+
+ # 1. Remove any files where the age exceeds max age.
+ if (is.finite(private$max_age)) {
+ timediff <- as.numeric(current_time - info$mtime, units = "secs")
+ rm_idx <- timediff > private$max_age
+ if (any(rm_idx)) {
+ private$log(paste0("prune max_age: Removing ", paste(info$name[rm_idx], collapse = ", ")))
+ file.remove(info$name[rm_idx])
+ info <- info[!rm_idx, ]
+ }
+ }
+
+ # Sort objects by priority. The sorting is done in a function which can be
+ # called multiple times but only does the work the first time.
+ info_is_sorted <- FALSE
+ ensure_info_is_sorted <- function() {
+ if (info_is_sorted) return()
+
+ info <<- info[order(info$mtime, decreasing = TRUE), ]
+ info_is_sorted <<- TRUE
+ }
+
+ # 2. Remove files if there are too many.
+ if (is.finite(private$max_n) && nrow(info) > private$max_n) {
+ ensure_info_is_sorted()
+ rm_idx <- seq_len(nrow(info)) > private$max_n
+ private$log(paste0("prune max_n: Removing ", paste(info$name[rm_idx], collapse = ", ")))
+ rm_success <- file.remove(info$name[rm_idx])
+ info <- info[!rm_success, ]
+ }
+
+ # 3. Remove files if cache is too large.
+ if (is.finite(private$max_size) && sum(info$size) > private$max_size) {
+ ensure_info_is_sorted()
+ cum_size <- cumsum(info$size)
+ rm_idx <- cum_size > private$max_size
+ private$log(paste0("prune max_size: Removing ", paste(info$name[rm_idx], collapse = ", ")))
+ rm_success <- file.remove(info$name[rm_idx])
+ info <- info[!rm_success, ]
+ }
+
+ private$prune_last_time <- as.numeric(current_time)
+
+ invisible(self)
+ },
+
+ size = function() {
+ self$is_destroyed(throw = TRUE)
+ length(dir(private$dir, "\\.rds$"))
+ },
+
+ destroy = function() {
+ if (self$is_destroyed()) {
+ return(invisible(self))
+ }
+
+ private$log(paste0("destroy: Removing ", private$dir))
+ # First create a sentinel file so that other processes sharing this
+ # cache know that the cache is to be destroyed. This is needed because
+ # the recursive unlink is not atomic: another process can add a file to
+ # the directory after unlink starts removing files but before it removes
+ # the directory, and when that happens, the directory removal will fail.
+ file.create(file.path(private$dir, "__destroyed__"))
+ # Remove all the .rds files. This will not remove the setinel file.
+ file.remove(dir(private$dir, "\\.rds$", full.names = TRUE))
+ # Next remove dir recursively, including sentinel file.
+ unlink(private$dir, recursive = TRUE)
+ private$destroyed <- TRUE
+ invisible(self)
+ },
+
+ is_destroyed = function(throw = FALSE) {
+ if (!dirExists(private$dir) ||
+ file.exists(file.path(private$dir, "__destroyed__")))
+ {
+ # It's possible for another process to destroy a shared cache directory
+ private$destroyed <- TRUE
+ }
+
+ if (throw) {
+ if (private$destroyed) {
+ stop("Attempted to use cache which has been destroyed:\n ", private$dir)
+ }
+
+ } else {
+ private$destroyed
+ }
+ },
+
+ finalize = function() {
+ if (private$destroy_on_finalize) {
+ self$destroy()
+ }
+ }
+ ),
+
+ private = list(
+ dir = NULL,
+ max_age = NULL,
+ max_size = NULL,
+ max_n = NULL,
+ evict = NULL,
+ destroy_on_finalize = NULL,
+ destroyed = FALSE,
+ missing = NULL,
+ exec_missing = FALSE,
+ logfile = NULL,
+
+ prune_throttle_counter = 0,
+ prune_last_time = NULL,
+
+ key_to_filename = function(key) {
+ validate_key(key)
+ # Additional validation. This 80-char limit is arbitrary, and is
+ # intended to avoid hitting a filename length limit on Windows.
+ if (nchar(key) > 80) {
+ stop("Invalid key: key must have fewer than 80 characters.")
+ }
+ file.path(private$dir, paste0(key, ".rds"))
+ },
+
+ # A wrapper for prune() that throttles it, because prune() can be
+ # expensive due to filesystem operations. This function will prune only
+ # once every 20 times it is called, or if it has been more than 5 seconds
+ # since the last time the cache was actually pruned, whichever is first.
+ # In the future, the behavior may be customizable.
+ prune_throttled = function() {
+ # Count the number of times prune() has been called.
+ private$prune_throttle_counter <- private$prune_throttle_counter + 1
+
+ if (private$prune_throttle_counter > 20 ||
+ private$prune_last_time - as.numeric(Sys.time()) > 5)
+ {
+ self$prune()
+ private$prune_throttle_counter <- 0
+ }
+ },
+
+ # Prunes a single object if it exceeds max_age. If the object does not
+ # exceed max_age, or if the object doesn't exist, do nothing.
+ maybe_prune_single = function(key) {
+ obj <- private$cache[[key]]
+ if (is.null(obj)) return()
+
+ timediff <- as.numeric(Sys.time()) - obj$mtime
+ if (timediff > private$max_age) {
+ private$log(paste0("pruning single object exceeding max_age: Removing ", key))
+ rm(list = key, envir = private$cache)
+ }
+ },
+
+ log = function(text) {
+ if (is.null(private$logfile)) return()
+
+ text <- paste0(format(Sys.time(), "[%Y-%m-%d %H:%M:%OS3] DiskCache "), text)
+ writeLines(text, private$logfile)
+ }
+ )
+)
diff --git a/R/cache-memory.R b/R/cache-memory.R
new file mode 100644
index 000000000..c7f1b5036
--- /dev/null
+++ b/R/cache-memory.R
@@ -0,0 +1,366 @@
+#' Create a memory cache object
+#'
+#' A memory cache object is a key-value store that saves the values in an
+#' environment. Objects can be stored and retrieved using the \code{get()} and
+#' \code{set()} methods. Objects are automatically pruned from the cache
+#' according to the parameters \code{max_size}, \code{max_age}, \code{max_n},
+#' and \code{evict}.
+#'
+#' In a \code{MemoryCache}, R objects are stored directly in the cache; they are
+#' not \emph{not} serialized before being stored in the cache. This contrasts
+#' with other cache types, like \code{\link{diskCache}}, where objects are
+#' serialized, and the serialized object is cached. This can result in some
+#' differences of behavior. For example, as long as an object is stored in a
+#' MemoryCache, it will not be garbage collected.
+#'
+#'
+#' @section Missing keys:
+#' The \code{missing} and \code{exec_missing} parameters controls what happens
+#' when \code{get()} is called with a key that is not in the cache (a cache
+#' miss). The default behavior is to return a \code{\link{key_missing}}
+#' object. This is a \emph{sentinel value} that indicates that the key was not
+#' present in the cache. You can test if the returned value represents a
+#' missing key by using the \code{\link{is.key_missing}} function. You can
+#' also have \code{get()} return a different sentinel value, like \code{NULL}.
+#' If you want to throw an error on a cache miss, you can do so by providing a
+#' function for \code{missing} that takes one argument, the key, and also use
+#' \code{exec_missing=TRUE}.
+#'
+#' When the cache is created, you can supply a value for \code{missing}, which
+#' sets the default value to be returned for missing values. It can also be
+#' overridden when \code{get()} is called, by supplying a \code{missing}
+#' argument. For example, if you use \code{cache$get("mykey", missing =
+#' NULL)}, it will return \code{NULL} if the key is not in the cache.
+#'
+#' If your cache is configured so that \code{get()} returns a sentinel value
+#' to represent a cache miss, then \code{set} will also not allow you to store
+#' the sentinel value in the cache. It will throw an error if you attempt to
+#' do so.
+#'
+#' Instead of returning the same sentinel value each time there is cache miss,
+#' the cache can execute a function each time \code{get()} encounters missing
+#' key. If the function returns a value, then \code{get()} will in turn return
+#' that value. However, a more common use is for the function to throw an
+#' error. If an error is thrown, then \code{get()} will not return a value.
+#'
+#' To do this, pass a one-argument function to \code{missing}, and use
+#' \code{exec_missing=TRUE}. For example, if you want to throw an error that
+#' prints the missing key, you could do this:
+#'
+#' \preformatted{
+#' diskCache(
+#' missing = function(key) {
+#' stop("Attempted to get missing key: ", key)
+#' },
+#' exec_missing = TRUE
+#' )
+#' }
+#'
+#' If you use this, the code that calls \code{get()} should be wrapped with
+#' \code{\link{tryCatch}()} to gracefully handle missing keys.
+#'
+#' @section Cache pruning:
+#'
+#' Cache pruning occurs when \code{set()} is called, or it can be invoked
+#' manually by calling \code{prune()}.
+#'
+#' When a pruning occurs, if there are any objects that are older than
+#' \code{max_age}, they will be removed.
+#'
+#' The \code{max_size} and \code{max_n} parameters are applied to the cache as
+#' a whole, in contrast to \code{max_age}, which is applied to each object
+#' individually.
+#'
+#' If the number of objects in the cache exceeds \code{max_n}, then objects
+#' will be removed from the cache according to the eviction policy, which is
+#' set with the \code{evict} parameter. Objects will be removed so that the
+#' number of items is \code{max_n}.
+#'
+#' If the size of the objects in the cache exceeds \code{max_size}, then
+#' objects will be removed from the cache. Objects will be removed from the
+#' cache so that the total size remains under \code{max_size}. Note that the
+#' size is calculated using the size of the files, not the size of disk space
+#' used by the files -- these two values can differ because of files are
+#' stored in blocks on disk. For example, if the block size is 4096 bytes,
+#' then a file that is one byte in size will take 4096 bytes on disk.
+#'
+#' Another time that objects can be removed from the cache is when
+#' \code{get()} is called. If the target object is older than \code{max_age},
+#' it will be removed and the cache will report it as a missing value.
+#'
+#' @section Eviction policies:
+#'
+#' If \code{max_n} or \code{max_size} are used, then objects will be removed
+#' from the cache according to an eviction policy. The available eviction
+#' policies are:
+#'
+#' \describe{
+#' \item{\code{"lru"}}{
+#' Least Recently Used. The least recently used objects will be removed.
+#' This uses the filesystem's atime property. Some filesystems do not
+#' support atime, or have a very low atime resolution. The DiskCache will
+#' check for atime support, and if the filesystem does not support atime,
+#' a warning will be issued and the "fifo" policy will be used instead.
+#' }
+#' \item{\code{"fifo"}}{
+#' First-in-first-out. The oldest objects will be removed.
+#' }
+#' }
+#'
+#' @section Methods:
+#'
+#' A disk cache object has the following methods:
+#'
+#' \describe{
+#' \item{\code{get(key, missing, exec_missing)}}{
+#' Returns the value associated with \code{key}. If the key is not in the
+#' cache, then it returns the value specified by \code{missing} or,
+#' \code{missing} is a function and \code{exec_missing=TRUE}, then
+#' executes \code{missing}. The function can throw an error or return the
+#' value. If either of these parameters are specified here, then they
+#' will override the defaults that were set when the DiskCache object was
+#' created. See section Missing Keys for more information.
+#' }
+#' \item{\code{set(key, value)}}{
+#' Stores the \code{key}-\code{value} pair in the cache.
+#' }
+#' \item{\code{exists(key)}}{
+#' Returns \code{TRUE} if the cache contains the key, otherwise
+#' \code{FALSE}.
+#' }
+#' \item{\code{size()}}{
+#' Returns the number of items currently in the cache.
+#' }
+#' \item{\code{keys()}}{
+#' Returns a character vector of all keys currently in the cache.
+#' }
+#' \item{\code{reset()}}{
+#' Clears all objects from the cache.
+#' }
+#' \item{\code{destroy()}}{
+#' Clears all objects in the cache, and removes the cache directory from
+#' disk.
+#' }
+#' \item{\code{prune()}}{
+#' Prunes the cache, using the parameters specified by \code{max_size},
+#' \code{max_age}, \code{max_n}, and \code{evict}.
+#' }
+#' }
+#'
+#' @inheritParams diskCache
+#'
+#' @export
+memoryCache <- function(
+ max_size = 10 * 1024 ^ 2,
+ max_age = Inf,
+ max_n = Inf,
+ evict = c("lru", "fifo"),
+ missing = key_missing(),
+ exec_missing = FALSE,
+ logfile = NULL)
+{
+ MemoryCache$new(max_size, max_age, max_n, evict, missing, exec_missing, logfile)
+}
+
+MemoryCache <- R6Class("MemoryCache",
+ public = list(
+ initialize = function(
+ max_size = 10 * 1024 ^ 2,
+ max_age = Inf,
+ max_n = Inf,
+ evict = c("lru", "fifo"),
+ missing = key_missing(),
+ exec_missing = FALSE,
+ logfile = NULL)
+ {
+ if (exec_missing && (!is.function(missing) || length(formals(missing)) == 0)) {
+ stop("When `exec_missing` is true, `missing` must be a function that takes one argument.")
+ }
+ if (!is.numeric(max_size)) stop("max_size must be a number. Use `Inf` for no limit.")
+ if (!is.numeric(max_age)) stop("max_age must be a number. Use `Inf` for no limit.")
+ if (!is.numeric(max_n)) stop("max_n must be a number. Use `Inf` for no limit.")
+ private$cache <- new.env(parent = emptyenv())
+ private$max_size <- max_size
+ private$max_age <- max_age
+ private$max_n <- max_n
+ private$evict <- match.arg(evict)
+ private$missing <- missing
+ private$exec_missing <- exec_missing
+ private$logfile <- logfile
+ },
+
+ get = function(key, missing = private$missing, exec_missing = private$exec_missing) {
+ private$log(paste0('get: key "', key, '"'))
+ validate_key(key)
+
+ private$maybe_prune_single(key)
+
+ if (!self$exists(key)) {
+ private$log(paste0('get: key "', key, '" is missing'))
+ if (exec_missing) {
+ if (!is.function(missing) || length(formals(missing)) == 0) {
+ stop("When `exec_missing` is true, `missing` must be a function that takes one argument.")
+ }
+ return(missing(key))
+ } else {
+ return(missing)
+ }
+ }
+
+ private$log(paste0('get: key "', key, '" found'))
+ value <- private$cache[[key]]$value
+ value
+ },
+
+ set = function(key, value) {
+ private$log(paste0('set: key "', key, '"'))
+ validate_key(key)
+
+ time <- as.numeric(Sys.time())
+
+ # Only record size if we're actually using max_size for pruning.
+ if (is.finite(private$max_size)) {
+ # Reported size is rough! See ?object.size.
+ size <- as.numeric(object.size(value))
+ } else {
+ size <- NULL
+ }
+
+ private$cache[[key]] <- list(
+ key = key,
+ value = value,
+ size = size,
+ mtime = time,
+ atime = time
+ )
+ self$prune()
+ invisible(self)
+ },
+
+ exists = function(key) {
+ validate_key(key)
+ # Faster than `exists(key, envir = private$cache, inherits = FALSE)
+ !is.null(private$cache[[key]])
+ },
+
+ keys = function() {
+ ls(private$cache, sorted = FALSE) # Faster with sorted=FALSE
+ },
+
+ remove = function(key) {
+ private$log(paste0('remove: key "', key, '"'))
+ validate_key(key)
+ rm(list = key, envir = private$cache)
+ invisible(self)
+ },
+
+ reset = function() {
+ private$log(paste0('reset'))
+ rm(list = self$keys(), envir = private$cache)
+ invisible(self)
+ },
+
+ prune = function() {
+ private$log(paste0('prune'))
+ info <- private$object_info()
+
+ # 1. Remove any objects where the age exceeds max age.
+ if (is.finite(private$max_age)) {
+ time <- as.numeric(Sys.time())
+ timediff <- time - info$mtime
+ rm_idx <- timediff > private$max_age
+ if (any(rm_idx)) {
+ private$log(paste0("prune max_age: Removing ", paste(info$key[rm_idx], collapse = ", ")))
+ rm(list = info$key[rm_idx], envir = private$cache)
+ info <- info[!rm_idx, ]
+ }
+ }
+
+ # Sort objects by priority, according to eviction policy. The sorting is
+ # done in a function which can be called multiple times but only does
+ # the work the first time.
+ info_is_sorted <- FALSE
+ ensure_info_is_sorted <- function() {
+ if (info_is_sorted) return()
+
+ if (private$evict == "lru") {
+ info <<- info[order(info$atime, decreasing = TRUE), ]
+ } else if (private$evict == "fifo") {
+ info <<- info[order(info$mtime, decreasing = TRUE), ]
+ } else {
+ stop('Unknown eviction policy "', private$evict, '"')
+ }
+ info_is_sorted <<- TRUE
+ }
+
+ # 2. Remove objects if there are too many.
+ if (is.finite(private$max_n) && nrow(info) > private$max_n) {
+ ensure_info_is_sorted()
+ rm_idx <- seq_len(nrow(info)) > private$max_n
+ private$log(paste0("prune max_n: Removing ", paste(info$key[rm_idx], collapse = ", ")))
+ rm(list = info$key[rm_idx], envir = private$cache)
+ info <- info[!rm_idx, ]
+ }
+
+ # 3. Remove objects if cache is too large.
+ if (is.finite(private$max_size) && sum(info$size) > private$max_size) {
+ ensure_info_is_sorted()
+ cum_size <- cumsum(info$size)
+ rm_idx <- cum_size > private$max_size
+ private$log(paste0("prune max_size: Removing ", paste(info$key[rm_idx], collapse = ", ")))
+ rm(list = info$key[rm_idx], envir = private$cache)
+ info <- info[!rm_idx, ]
+ }
+
+ invisible(self)
+ },
+
+ size = function() {
+ length(self$keys())
+ }
+ ),
+
+ private = list(
+ cache = NULL,
+ max_age = NULL,
+ max_size = NULL,
+ max_n = NULL,
+ evict = NULL,
+ missing = NULL,
+ exec_missing = NULL,
+ logfile = NULL,
+
+ # Prunes a single object if it exceeds max_age. If the object does not
+ # exceed max_age, or if the object doesn't exist, do nothing.
+ maybe_prune_single = function(key) {
+ if (!is.finite(private$max_age)) return()
+
+ obj <- private$cache[[key]]
+ if (is.null(obj)) return()
+
+ timediff <- as.numeric(Sys.time()) - obj$mtime
+ if (timediff > private$max_age) {
+ private$log(paste0("pruning single object exceeding max_age: Removing ", key))
+ rm(list = key, envir = private$cache)
+ }
+ },
+
+ object_info = function() {
+ keys <- ls(private$cache, sorted = FALSE)
+ data.frame(
+ key = keys,
+ size = vapply(keys, function(key) private$cache[[key]]$size, 0),
+ mtime = vapply(keys, function(key) private$cache[[key]]$mtime, 0),
+ atime = vapply(keys, function(key) private$cache[[key]]$atime, 0),
+ stringsAsFactors = FALSE
+ )
+ },
+
+ log = function(text) {
+ if (is.null(private$logfile)) return()
+
+ text <- paste0(format(Sys.time(), "[%Y-%m-%d %H:%M:%OS3] MemoryCache "), text)
+ writeLines(text, private$logfile)
+ }
+ )
+)
diff --git a/R/cache-utils.R b/R/cache-utils.R
new file mode 100644
index 000000000..caa9a0ad0
--- /dev/null
+++ b/R/cache-utils.R
@@ -0,0 +1,33 @@
+#' A Key Missing object
+#'
+#' A \code{key_missing} object represents a cache miss.
+#'
+#' @param x An object to test.
+#'
+#' @seealso \code{\link{diskCache}}, \code{\link{memoryCache}}.
+#'
+#' @export
+key_missing <- function() {
+ structure(list(), class = "key_missing")
+}
+
+#' @rdname key_missing
+#' @export
+is.key_missing <- function(x) {
+ inherits(x, "key_missing")
+}
+
+#' @export
+print.key_missing <- function(x, ...) {
+ cat("\n")
+}
+
+
+validate_key <- function(key) {
+ if (!is.character(key) || length(key) != 1 || nchar(key) == 0) {
+ stop("Invalid key: key must be single non-empty string.")
+ }
+ if (grepl("[^a-z0-9]", key)) {
+ stop("Invalid key: ", key, ". Only lowercase letters and numbers are allowed.")
+ }
+}
diff --git a/R/image-interact.R b/R/image-interact.R
index e985629ba..cad6291ea 100644
--- a/R/image-interact.R
+++ b/R/image-interact.R
@@ -249,14 +249,20 @@ nearPoints <- function(df, coordinfo, xvar = NULL, yvar = NULL,
x <- asNumber(df[[xvar]])
y <- asNumber(df[[yvar]])
- # Get the pixel coordinates of the point
- coordPx <- scaleCoords(coordinfo$x, coordinfo$y, coordinfo)
+ # Get the coordinates of the point (in img pixel coordinates)
+ point_img <- scaleCoords(coordinfo$x, coordinfo$y, coordinfo)
- # Get pixel coordinates of data points
- dataPx <- scaleCoords(x, y, coordinfo)
+ # Get coordinates of data points (in img pixel coordinates)
+ data_img <- scaleCoords(x, y, coordinfo)
- # Distances of data points to coordPx
- dists <- sqrt((dataPx$x - coordPx$x) ^ 2 + (dataPx$y - coordPx$y) ^ 2)
+ # Get x/y distances (in css coordinates)
+ dist_css <- list(
+ x = (data_img$x - point_img$x) / coordinfo$pixelratio$x,
+ y = (data_img$y - point_img$y) / coordinfo$pixelratio$y
+ )
+
+ # Distances of data points to the target point, in css pixels.
+ dists <- sqrt(dist_css$x^2 + dist_css$y^2)
if (addDist)
df$dist_ <- dists
@@ -298,50 +304,56 @@ nearPoints <- function(df, coordinfo, xvar = NULL, yvar = NULL,
# The coordinfo data structure will look something like the examples below.
# For base graphics, `mapping` is empty, and there are no panelvars:
# List of 7
-# $ x : num 4.37
-# $ y : num 12
-# $ mapping: Named list()
-# $ domain :List of 4
+# $ x : num 4.37
+# $ y : num 12
+# $ pixelratio:List of 2
+# ..$ x: num 2
+# ..$ y: num 2
+# $ mapping : Named list()
+# $ domain :List of 4
# ..$ left : num 1.36
# ..$ right : num 5.58
# ..$ bottom: num 9.46
# ..$ top : num 34.8
-# $ range :List of 4
+# $ range :List of 4
# ..$ left : num 58
# ..$ right : num 429
# ..$ bottom: num 226
# ..$ top : num 58
-# $ log :List of 2
+# $ log :List of 2
# ..$ x: NULL
# ..$ y: NULL
-# $ .nonce : num 0.343
+# $ .nonce : num 0.343
#
# For ggplot2, the mapping vars usually will be included, and if faceting is
# used, they will be listed as panelvars:
# List of 9
-# $ x : num 3.78
-# $ y : num 17.1
-# $ panelvar1: int 6
-# $ panelvar2: int 0
-# $ mapping :List of 4
+# $ x : num 3.78
+# $ y : num 17.1
+# $ pixelratio:List of 2
+# ..$ x: num 2
+# ..$ y: num 2
+# $ panelvar1 : int 6
+# $ panelvar2 : int 0
+# $ mapping :List of 4
# ..$ x : chr "wt"
# ..$ y : chr "mpg"
# ..$ panelvar1: chr "cyl"
# ..$ panelvar2: chr "am"
-# $ domain :List of 4
+# $ domain :List of 4
# ..$ left : num 1.32
# ..$ right : num 5.62
# ..$ bottom: num 9.22
# ..$ top : num 35.1
-# $ range :List of 4
+# $ range :List of 4
# ..$ left : num 172
# ..$ right : num 300
# ..$ bottom: num 144
# ..$ top : num 28.5
-# $ log :List of 2
+# $ log :List of 2
# ..$ x: NULL
# ..$ y: NULL
-# $ .nonce : num 0.603
+# $ .nonce : num 0.603
diff --git a/R/input-date.R b/R/input-date.R
index c2f7a56a4..47c0921f6 100644
--- a/R/input-date.R
+++ b/R/input-date.R
@@ -43,6 +43,10 @@
#' "vi", "zh-CN", and "zh-TW".
#' @param autoclose Whether or not to close the datepicker immediately when a
#' date is selected.
+#' @param datesdisabled Which dates should be disabled. Either a Date object,
+#' or a string in \code{yyyy-mm-dd} format.
+#' @param daysofweekdisabled Days of the week that should be disabled. Should be
+#' a integer vector with values from 0 (Sunday) to 6 (Saturday).
#'
#' @family input elements
#' @seealso \code{\link{dateRangeInput}}, \code{\link{updateDateInput}}
@@ -70,21 +74,32 @@
#'
#' # Start with decade view instead of default month view
#' dateInput("date6", "Date:",
-#' startview = "decade")
+#' startview = "decade"),
+#'
+#' # Disable Mondays and Tuesdays.
+#' dateInput("date7", "Date:", daysofweekdisabled = c(1,2)),
+#'
+#' # Disable specific dates.
+#' dateInput("date8", "Date:", value = "2012-02-29",
+#' datesdisabled = c("2012-03-01", "2012-03-02"))
#' )
#'
#' shinyApp(ui, server = function(input, output) { })
#' }
#' @export
dateInput <- function(inputId, label, value = NULL, min = NULL, max = NULL,
- format = "yyyy-mm-dd", startview = "month", weekstart = 0, language = "en",
- width = NULL, autoclose = TRUE) {
+ format = "yyyy-mm-dd", startview = "month", weekstart = 0,
+ language = "en", width = NULL, autoclose = TRUE,
+ datesdisabled = NULL, daysofweekdisabled = NULL) {
# If value is a date object, convert it to a string with yyyy-mm-dd format
# Same for min and max
if (inherits(value, "Date")) value <- format(value, "%Y-%m-%d")
if (inherits(min, "Date")) min <- format(min, "%Y-%m-%d")
if (inherits(max, "Date")) max <- format(max, "%Y-%m-%d")
+ if (inherits(datesdisabled, "Date")) {
+ datesdisabled <- format(datesdisabled, "%Y-%m-%d")
+ }
value <- restoreInput(id = inputId, default = value)
@@ -102,7 +117,12 @@ dateInput <- function(inputId, label, value = NULL, min = NULL, max = NULL,
`data-min-date` = min,
`data-max-date` = max,
`data-initial-date` = value,
- `data-date-autoclose` = if (autoclose) "true" else "false"
+ `data-date-autoclose` = if (autoclose) "true" else "false",
+ `data-date-dates-disabled` =
+ # Ensure NULL is not sent as `{}` but as 'null'
+ jsonlite::toJSON(datesdisabled, null = 'null'),
+ `data-date-days-of-week-disabled` =
+ jsonlite::toJSON(daysofweekdisabled, null = 'null')
),
datePickerDependency
)
diff --git a/R/input-select.R b/R/input-select.R
index 28117f3df..03fcaf052 100644
--- a/R/input-select.R
+++ b/R/input-select.R
@@ -33,7 +33,7 @@
#' @return A select list control that can be added to a UI definition.
#'
#' @family input elements
-#' @seealso \code{\link{updateSelectInput}}
+#' @seealso \code{\link{updateSelectInput}} \code{\link{varSelectInput}}
#'
#' @examples
#' ## Only run examples in interactive R sessions
@@ -59,9 +59,9 @@
#' shinyApp(
#' ui = fluidPage(
#' selectInput("state", "Choose a state:",
-#' list(`East Coast` = c("NY", "NJ", "CT"),
-#' `West Coast` = c("WA", "OR", "CA"),
-#' `Midwest` = c("MN", "WI", "IA"))
+#' list(`East Coast` = list("NY", "NJ", "CT"),
+#' `West Coast` = list("WA", "OR", "CA"),
+#' `Midwest` = list("MN", "WI", "IA"))
#' ),
#' textOutput("result")
#' ),
@@ -212,3 +212,135 @@ selectizeIt <- function(inputId, select, options, nonempty = FALSE) {
attachDependencies(select, selectizeDep)
}
+
+
+
+
+
+
+
+
+#' Select variables from a data frame
+#'
+#' Create a select list that can be used to choose a single or multiple items
+#' from the column names of a data frame.
+#'
+#' The resulting server \code{input} value will be returned as:
+#' \itemize{
+#' \item a symbol if \code{multiple = FALSE}. The \code{input} value should be
+#' used with rlang's \code{\link[rlang]{!!}}. For example,
+#' \code{ggplot2::aes(!!input$variable)}.
+#' \item a list of symbols if \code{multiple = TRUE}. The \code{input} value
+#' should be used with rlang's \code{\link[rlang]{!!!}} to expand
+#' the symbol list as individual arguments. For example,
+#' \code{dplyr::select(mtcars, !!!input$variabls)} which is
+#' equivalent to \code{dplyr::select(mtcars, !!input$variabls[[1]], !!input$variabls[[2]], ..., !!input$variabls[[length(input$variabls)]])}.
+#' }
+#'
+#' By default, \code{varSelectInput()} and \code{selectizeInput()} use the
+#' JavaScript library \pkg{selectize.js}
+#' (\url{https://github.com/selectize/selectize.js}) to instead of the basic
+#' select input element. To use the standard HTML select input element, use
+#' \code{selectInput()} with \code{selectize=FALSE}.
+#'
+#' @inheritParams selectInput
+#' @param data A data frame. Used to retrieve the column names as choices for a \code{\link{selectInput}}
+#' @return A variable select list control that can be added to a UI definition.
+#'
+#' @family input elements
+#' @seealso \code{\link{updateSelectInput}}
+#' @examples
+#'
+#' ## Only run examples in interactive R sessions
+#' if (interactive()) {
+#'
+#' library(ggplot2)
+#'
+#' # single selection
+#' shinyApp(
+#' ui = fluidPage(
+#' varSelectInput("variable", "Variable:", mtcars),
+#' plotOutput("data")
+#' ),
+#' server = function(input, output) {
+#' output$data <- renderPlot({
+#' ggplot(mtcars, aes(!!input$variable)) + geom_histogram()
+#' })
+#' }
+#' )
+#'
+#'
+#' # multiple selections
+#' \dontrun{
+#' shinyApp(
+#' ui = fluidPage(
+#' varSelectInput("variables", "Variable:", mtcars, multiple = TRUE),
+#' tableOutput("data")
+#' ),
+#' server = function(input, output) {
+#' output$data <- renderTable({
+#' if (length(input$variables) == 0) return(mtcars)
+#' mtcars %>% dplyr::select(!!!input$variables)
+#' }, rownames = TRUE)
+#' }
+#' )}
+#'
+#' }
+#' @export
+varSelectInput <- function(
+ inputId, label, data, selected = NULL,
+ multiple = FALSE, selectize = TRUE, width = NULL,
+ size = NULL
+) {
+ # no place holders
+ choices <- colnames(data)
+
+ selectInputVal <- selectInput(
+ inputId = inputId,
+ label = label,
+ choices = choices,
+ selected = selected,
+ multiple = multiple,
+ selectize = selectize,
+ width = width,
+ size = size
+ )
+
+ # set the select tag class to be "symbol"
+ selectClass <- selectInputVal$children[[2]]$children[[1]]$attribs$class
+ if (is.null(selectClass)) {
+ newClass <- "symbol"
+ } else {
+ newClass <- paste(selectClass, "symbol", sep = " ")
+ }
+ selectInputVal$children[[2]]$children[[1]]$attribs$class <- newClass
+
+ selectInputVal
+}
+
+
+
+#' @rdname varSelectInput
+#' @param ... Arguments passed to \code{varSelectInput()}.
+#' @param options A list of options. See the documentation of \pkg{selectize.js}
+#' for possible options (character option values inside \code{\link[base]{I}()} will
+#' be treated as literal JavaScript code; see \code{\link{renderDataTable}()}
+#' for details).
+#' @param width The width of the input, e.g. \code{'400px'}, or \code{'100\%'};
+#' see \code{\link{validateCssUnit}}.
+#' @note The variable selectize input created from \code{varSelectizeInput()} allows
+#' deletion of the selected option even in a single select input, which will
+#' return an empty string as its value. This is the default behavior of
+#' \pkg{selectize.js}. However, the selectize input created from
+#' \code{selectInput(..., selectize = TRUE)} will ignore the empty string
+#' value when it is a single choice input and the empty string is not in the
+#' \code{choices} argument. This is to keep compatibility with
+#' \code{selectInput(..., selectize = FALSE)}.
+#' @export
+varSelectizeInput <- function(inputId, ..., options = NULL, width = NULL) {
+ selectizeIt(
+ inputId,
+ varSelectInput(inputId, ..., selectize = FALSE, width = width),
+ options
+ )
+}
diff --git a/R/input-slider.R b/R/input-slider.R
index 3225309ed..aa60dcf4a 100644
--- a/R/input-slider.R
+++ b/R/input-slider.R
@@ -86,24 +86,10 @@ sliderInput <- function(inputId, label, min, max, value, step = NULL,
version = "0.10.2.2")
}
- if (inherits(min, "Date")) {
- if (!inherits(max, "Date") || !inherits(value, "Date"))
- stop("`min`, `max`, and `value must all be Date or non-Date objects")
- dataType <- "date"
+ dataType <- getSliderType(min, max, value)
- if (is.null(timeFormat))
- timeFormat <- "%F"
-
- } else if (inherits(min, "POSIXt")) {
- if (!inherits(max, "POSIXt") || !inherits(value, "POSIXt"))
- stop("`min`, `max`, and `value must all be POSIXt or non-POSIXt objects")
- dataType <- "datetime"
-
- if (is.null(timeFormat))
- timeFormat <- "%F %T"
-
- } else {
- dataType <- "number"
+ if (is.null(timeFormat)) {
+ timeFormat <- switch(dataType, date = "%F", datetime = "%F %T", number = NULL)
}
# Restore bookmarked values here, after doing the type checking, because the
@@ -250,7 +236,13 @@ findStepSize <- function(min, max, step) {
# values to calculate the step size.
pretty_steps <- pretty(c(min, max), n = 100)
n_steps <- length(pretty_steps) - 1
- (max(pretty_steps) - min(pretty_steps)) / n_steps
+
+ # Fix for #2061: Windows has low-significance digits (like 17 digits out)
+ # even at the boundaries of pretty()'s output. Use signif(digits = 10),
+ # which should be way way less significant than any data we'd want to keep.
+ # It might make sense to use signif(steps[2] - steps[1], 10) instead, but
+ # for now trying to make the minimal change.
+ signif(digits = 10, (max(pretty_steps) - min(pretty_steps)) / n_steps)
} else {
1
diff --git a/R/render-cached-plot.R b/R/render-cached-plot.R
new file mode 100644
index 000000000..642e4a52f
--- /dev/null
+++ b/R/render-cached-plot.R
@@ -0,0 +1,588 @@
+#' Plot output with cached images
+#'
+#' Renders a reactive plot, with plot images cached to disk.
+#'
+#' \code{expr} is an expression that generates a plot, similar to that in
+#' \code{renderPlot}. Unlike with \code{renderPlot}, this expression does not
+#' take reactive dependencies. It is re-executed only when the cache key
+#' changes.
+#'
+#' \code{cacheKeyExpr} is an expression which, when evaluated, returns an object
+#' which will be serialized and hashed using the \code{\link[digest]{digest}}
+#' function to generate a string that will be used as a cache key. This key is
+#' used to identify the contents of the plot: if the cache key is the same as a
+#' previous time, it assumes that the plot is the same and can be retrieved from
+#' the cache.
+#'
+#' This \code{cacheKeyExpr} is reactive, and so it will be re-evaluated when any
+#' upstream reactives are invalidated. This will also trigger re-execution of
+#' the plotting expression, \code{expr}.
+#'
+#' The key should consist of "normal" R objects, like vectors and lists. Lists
+#' should in turn contain other normal R objects. If the key contains
+#' environments, external pointers, or reference objects -- or even if it has
+#' such objects attached as attributes -- then it is possible that it will
+#' change unpredictably even when you do not expect it to. Additionally, because
+#' the entire key is serialized and hashed, if it contains a very large object
+#' -- a large data set, for example -- there may be a noticeable performance
+#' penalty.
+#'
+#' If you face these issues with the cache key, you can work around them by
+#' extracting out the important parts of the objects, and/or by converting them
+#' to normal R objects before returning them. Your expression could even
+#' serialize and hash that information in an efficient way and return a string,
+#' which will in turn be hashed (very quickly) by the
+#' \code{\link[digest]{digest}} function.
+#'
+#' Internally, the result from \code{cacheKeyExpr} is combined with the name of
+#' the output (if you assign it to \code{output$plot1}, it will be combined
+#' with \code{"plot1"}) to form the actual key that is used. As a result, even
+#' if there are multiple plots that have the same \code{cacheKeyExpr}, they
+#' will not have cache key collisions.
+#'
+#' @section Cache scoping:
+#'
+#' There are a number of different ways you may want to scope the cache. For
+#' example, you may want each user session to have their own plot cache, or
+#' you may want each run of the application to have a cache (shared among
+#' possibly multiple simultaneous user sessions), or you may want to have a
+#' cache that persists even after the application is shut down and started
+#' again.
+#'
+#' To control the scope of the cache, use the \code{cache} parameter. There
+#' are two ways of having Shiny automatically create and clean up the disk
+#' cache.
+#'
+#' \describe{
+#' \item{1}{To scope the cache to one run of a Shiny application (shared
+#' among possibly multiple user sessions), use \code{cache="app"}. This
+#' is the default. The cache will be shared across multiple sessions, so
+#' there is potentially a large performance benefit if there are many users
+#' of the application. When the application stops running, the cache will
+#' be deleted. If plots cannot be safely shared across users, this should
+#' not be used.}
+#' \item{2}{To scope the cache to one session, use \code{cache="session"}.
+#' When a new user session starts -- in other words, when a web browser
+#' visits the Shiny application -- a new cache will be created on disk
+#' for that session. When the session ends, the cache will be deleted.
+#' The cache will not be shared across multiple sessions.}
+#' }
+#'
+#' If either \code{"app"} or \code{"session"} is used, the cache will be 10 MB
+#' in size, and will be stored stored in memory, using a
+#' \code{\link{memoryCache}} object. Note that the cache space will be shared
+#' among all cached plots within a single application or session.
+#'
+#' In some cases, you may want more control over the caching behavior. For
+#' example, you may want to use a larger or smaller cache, share a cache
+#' among multiple R processes, or you may want the cache to persist across
+#' multiple runs of an application, or even across multiple R processes.
+#'
+#' To use different settings for an application-scoped cache, you can call
+#' \code{\link{shinyOptions}()} at the top of your app.R, server.R, or
+#' global.R. For example, this will create a cache with 20 MB of space
+#' instead of the default 10 MB:
+#' \preformatted{
+#' shinyOptions(cache = memoryCache(size = 20e6))
+#' }
+#'
+#' To use different settings for a session-scoped cache, you can call
+#' \code{\link{shinyOptions}()} at the top of your server function. To use
+#' the session-scoped cache, you must also call \code{renderCachedPlot} with
+#' \code{cache="session"}. This will create a 20 MB cache for the session:
+#' \preformatted{
+#' function(input, output, session) {
+#' shinyOptions(cache = memoryCache(size = 20e6))
+#'
+#' output$plot <- renderCachedPlot(
+#' ...,
+#' cache = "session"
+#' )
+#' }
+#' }
+#'
+#' If you want to create a cache that is shared across multiple concurrent
+#' R processes, you can use a \code{\link{diskCache}}. You can create an
+#' application-level shared cache by putting this at the top of your app.R,
+#' server.R, or global.R:
+#' \preformatted{
+#' shinyOptions(cache = diskCache(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
+#' your choosing). On most platforms, this directory will be removed when
+#' your system reboots. This cache will persist across multiple starts and
+#' 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:
+#' \preformatted{
+#' shinyOptions(cache = diskCache("./myapp-cache"))
+#' }
+#'
+#' In this case, resetting the cache will have to be done manually, by deleting
+#' the directory.
+#'
+#' You can also scope a cache to just one plot, or selected plots. To do that,
+#' create a \code{\link{memoryCache}} or \code{\link{diskCache}}, and pass it
+#' as the \code{cache} argument of \code{renderCachedPlot}.
+#'
+#' @section Interactive plots:
+#'
+#' \code{renderCachedPlot} can be used to create interactive plots. See
+#' \code{\link{plotOutput}} for more information and examples.
+#'
+#'
+#' @inheritParams renderPlot
+#' @param cacheKeyExpr An expression that returns a cache key. This key should
+#' be a unique identifier for a plot: the assumption is that if the cache key
+#' is the same, then the plot will be the same.
+#' @param sizePolicy A function that takes two arguments, \code{width} and
+#' \code{height}, and returns a list with \code{width} and \code{height}. The
+#' purpose is to round the actual pixel dimensions from the browser to some
+#' other dimensions, so that this will not generate and cache images of every
+#' possible pixel dimension. See \code{\link{sizeGrowthRatio}} for more
+#' information on the default sizing policy.
+#' @param res The resolution of the PNG, in pixels per inch.
+#' @param cache The scope of the cache, or a cache object. This can be
+#' \code{"app"} (the default), \code{"session"}, or a cache object like
+#' a \code{\link{diskCache}}. See the Cache Scoping section for more
+#' information.
+#'
+#' @seealso See \code{\link{renderPlot}} for the regular, non-cached version of
+#' this function. For more about configuring caches, see
+#' \code{\link{memoryCache}} and \code{\link{diskCache}}.
+#'
+#'
+#' @examples
+#' ## Only run examples in interactive R sessions
+#' if (interactive()) {
+#'
+#' # A basic example that uses the default app-scoped memory cache.
+#' # The cache will be shared among all simultaneous users of the application.
+#' shinyApp(
+#' fluidPage(
+#' sidebarLayout(
+#' sidebarPanel(
+#' sliderInput("n", "Number of points", 4, 32, value = 8, step = 4)
+#' ),
+#' mainPanel(plotOutput("plot"))
+#' )
+#' ),
+#' function(input, output, session) {
+#' output$plot <- renderCachedPlot({
+#' Sys.sleep(2) # Add an artificial delay
+#' seqn <- seq_len(input$n)
+#' plot(mtcars$wt[seqn], mtcars$mpg[seqn],
+#' xlim = range(mtcars$wt), ylim = range(mtcars$mpg))
+#' },
+#' cacheKeyExpr = { list(input$n) }
+#' )
+#' }
+#' )
+#'
+#'
+#'
+#' # An example uses a data object shared across sessions. mydata() is part of
+#' # the cache key, so when its value changes, plots that were previously
+#' # stored in the cache will no longer be used (unless mydata() changes back
+#' # to its previous value).
+#' mydata <- reactiveVal(data.frame(x = rnorm(400), y = rnorm(400)))
+#'
+#' ui <- fluidPage(
+#' sidebarLayout(
+#' sidebarPanel(
+#' sliderInput("n", "Number of points", 50, 400, 100, step = 50),
+#' actionButton("newdata", "New data")
+#' ),
+#' mainPanel(
+#' plotOutput("plot")
+#' )
+#' )
+#' )
+#'
+#' server <- function(input, output, session) {
+#' observeEvent(input$newdata, {
+#' mydata(data.frame(x = rnorm(400), y = rnorm(400)))
+#' })
+#'
+#' output$plot <- renderCachedPlot(
+#' {
+#' Sys.sleep(2)
+#' d <- mydata()
+#' seqn <- seq_len(input$n)
+#' plot(d$x[seqn], d$y[seqn], xlim = range(d$x), ylim = range(d$y))
+#' },
+#' cacheKeyExpr = { list(input$n, mydata()) },
+#' )
+#' }
+#'
+#' shinyApp(ui, server)
+#'
+#'
+#' # A basic application with two plots, where each plot in each session has
+#' # a separate cache.
+#' shinyApp(
+#' fluidPage(
+#' sidebarLayout(
+#' sidebarPanel(
+#' sliderInput("n", "Number of points", 4, 32, value = 8, step = 4)
+#' ),
+#' mainPanel(
+#' plotOutput("plot1"),
+#' plotOutput("plot2")
+#' )
+#' )
+#' ),
+#' function(input, output, session) {
+#' output$plot1 <- renderCachedPlot({
+#' Sys.sleep(2) # Add an artificial delay
+#' seqn <- seq_len(input$n)
+#' plot(mtcars$wt[seqn], mtcars$mpg[seqn],
+#' xlim = range(mtcars$wt), ylim = range(mtcars$mpg))
+#' },
+#' cacheKeyExpr = { list(input$n) },
+#' cache = memoryCache()
+#' )
+#' output$plot2 <- renderCachedPlot({
+#' Sys.sleep(2) # Add an artificial delay
+#' seqn <- seq_len(input$n)
+#' plot(mtcars$wt[seqn], mtcars$mpg[seqn],
+#' xlim = range(mtcars$wt), ylim = range(mtcars$mpg))
+#' },
+#' cacheKeyExpr = { list(input$n) },
+#' cache = memoryCache()
+#' )
+#' }
+#' )
+#'
+#' }
+#'
+#' \dontrun{
+#' # At the top of app.R, this set the application-scoped cache to be a memory
+#' # cache that is 20 MB in size, and where cached objects expire after one
+#' # hour.
+#' shinyOptions(cache = memoryCache(max_size = 20e6, max_age = 3600))
+#'
+#' # At the top of app.R, this set the application-scoped cache to be a disk
+#' # cache that can be shared among multiple concurrent R processes, and is
+#' # deleted when the system reboots.
+#' shinyOptions(cache = diskCache(file.path(dirname(tempdir()), "myapp-cache"))
+#'
+#' # At the top of app.R, this set the application-scoped cache to be a disk
+#' # cache that can be shared among multiple concurrent R processes, and
+#' # persists on disk across reboots.
+#' shinyOptions(cache = diskCache("./myapp-cache"))
+#'
+#' # At the top of the server function, this set the session-scoped cache to be
+#' # a memory cache that is 5 MB in size.
+#' server <- function(input, output, session) {
+#' shinyOptions(cache = memoryCache(max_size = 5e6))
+#'
+#' output$plot <- renderCachedPlot(
+#' ...,
+#' cache = "session"
+#' )
+#' }
+#'
+#' }
+#' @export
+renderCachedPlot <- function(expr,
+ cacheKeyExpr,
+ sizePolicy = sizeGrowthRatio(width = 400, height = 400, growthRate = 1.2),
+ res = 72,
+ cache = "app",
+ ...,
+ outputArgs = list()
+) {
+
+ # This ..stacktraceon is matched by a ..stacktraceoff.. when plotFunc
+ # is called
+ installExprFunction(expr, "func", parent.frame(), quoted = FALSE, ..stacktraceon = TRUE)
+ # This is so that the expr doesn't re-execute by itself; it needs to be
+ # triggered by the cache key (or width/height) changing.
+ isolatedFunc <- function() isolate(func())
+
+ args <- list(...)
+
+ cacheKeyExpr <- substitute(cacheKeyExpr)
+ # The real cache key we'll use also includes width, height, res, pixelratio.
+ # This is just the part supplied by the user.
+ userCacheKey <- reactive(cacheKeyExpr, env = parent.frame(), quoted = TRUE, label = "userCacheKey")
+
+ ensureCacheSetup <- function() {
+ # For our purposes, cache objects must support these methods.
+ isCacheObject <- function(x) {
+ # Use tryCatch in case the object does not support `$`.
+ tryCatch(
+ is.function(x$get) && is.function(x$set),
+ error = function(e) FALSE
+ )
+ }
+
+ if (isCacheObject(cache)) {
+ # If `cache` is already a cache object, do nothing
+ return()
+
+ } else if (identical(cache, "app")) {
+ cache <<- getShinyOption("cache")
+
+ } else if (identical(cache, "session")) {
+ cache <<- session$cache
+
+ } else {
+ stop('`cache` must either be "app", "session", or a cache object with methods, `$get`, and `$set`.')
+ }
+ }
+
+ # The width and height of the plot to draw, given from sizePolicy. These
+ # values get filled by an observer below.
+ fitDims <- reactiveValues(width = NULL, height = NULL)
+
+ resizeObserver <- NULL
+ ensureResizeObserver <- function() {
+ if (!is.null(resizeObserver))
+ return()
+
+ # Given the actual width/height of the image in the browser, this gets the
+ # width/height from sizePolicy() and pushes those values into `fitDims`.
+ # It's done this way so that the `fitDims` only change (and cause
+ # invalidations) when the rendered image size changes, and not every time
+ # the browser's tag changes size.
+ doResizeCheck <- function() {
+ width <- session$clientData[[paste0('output_', outputName, '_width')]]
+ height <- session$clientData[[paste0('output_', outputName, '_height')]]
+
+ if (is.null(width)) width <- 0
+ if (is.null(height)) height <- 0
+
+ rect <- sizePolicy(c(width, height))
+ fitDims$width <- rect[1]
+ fitDims$height <- rect[2]
+ }
+
+ # Run it once immediately, then set up the observer
+ isolate(doResizeCheck())
+
+ resizeObserver <<- observe(doResizeCheck())
+ }
+
+ # Vars to store session and output, so that they can be accessed from
+ # the plotObj() reactive.
+ session <- NULL
+ outputName <- NULL
+
+
+ drawReactive <- reactive(label = "plotObj", {
+ hybrid_chain(
+ # Depend on the user cache key, even though we don't use the value. When
+ # it changes, it can cause the drawReactive to re-execute. (Though
+ # drawReactive will not necessarily re-execute -- it must be called from
+ # renderFunc, which happens only if there's a cache miss.)
+ userCacheKey(),
+ function(userCacheKeyValue) {
+ # Get width/height, but don't depend on them.
+ isolate({
+ width <- fitDims$width
+ height <- fitDims$height
+ })
+
+ pixelratio <- session$clientData$pixelratio %OR% 1
+
+ do.call("drawPlot", c(
+ list(
+ name = outputName,
+ session = session,
+ func = isolatedFunc,
+ width = width,
+ height = height,
+ pixelratio = pixelratio,
+ res = res
+ ),
+ args
+ ))
+ },
+ catch = function(reason) {
+ # Non-isolating read. A common reason for errors in plotting is because
+ # the dimensions are too small. By taking a dependency on width/height,
+ # we can try again if the plot output element changes size.
+ fitDims$width
+ fitDims$height
+
+ # Propagate the error
+ stop(reason)
+ }
+ )
+ })
+
+
+ # This function is the one that's returned from renderPlot(), and gets
+ # wrapped in an observer when the output value is assigned.
+ renderFunc <- function(shinysession, name, ...) {
+ outputName <<- name
+ session <<- shinysession
+ ensureCacheSetup()
+ ensureResizeObserver()
+
+ hybrid_chain(
+ # This use of the userCacheKey() sets up the reactive dependency that
+ # causes plot re-draw events. These may involve pulling from the cache,
+ # replaying a display list, or re-executing user code.
+ userCacheKey(),
+ function(userCacheKeyResult) {
+ width <- fitDims$width
+ height <- fitDims$height
+ pixelratio <- session$clientData$pixelratio %OR% 1
+
+ key <- digest::digest(list(outputName, userCacheKeyResult, width, height, res, pixelratio), "xxhash64")
+
+ plotObj <- cache$get(key)
+
+ # First look in cache.
+ # Case 1. cache hit.
+ if (!is.key_missing(plotObj)) {
+ return(list(
+ cacheHit = TRUE,
+ key = key,
+ plotObj = plotObj,
+ width = width,
+ height = height,
+ pixelratio = pixelratio
+ ))
+ }
+
+ # If not in cache, hybrid_chain call to drawReactive
+ #
+ # Two more possible cases:
+ # 2. drawReactive will re-execute and return a plot that's the
+ # correct size.
+ # 3. It will not re-execute, but it will return the previous value,
+ # which is the wrong size. It will include a valid display list
+ # which can be used by resizeSavedPlot.
+ hybrid_chain(
+ drawReactive(),
+ function(drawReactiveResult) {
+ # Pass along the key for caching in the next stage
+ list(
+ cacheHit = FALSE,
+ key = key,
+ plotObj = drawReactiveResult,
+ width = width,
+ height = height,
+ pixelratio = pixelratio
+ )
+ }
+ )
+ },
+ function(result) {
+ width <- result$width
+ height <- result$height
+ pixelratio <- result$pixelratio
+
+ # Three possibilities when we get here:
+ # 1. There was a cache hit. No need to set a value in the cache.
+ # 2. There was a cache miss, and the plotObj is already the correct
+ # size (because drawReactive re-executed). In this case, we need
+ # to cache it.
+ # 3. There was a cache miss, and the plotObj was not the corect size.
+ # In this case, we need to replay the display list, and then cache
+ # the result.
+ if (!result$cacheHit) {
+ # If the image is already the correct size, this just returns the
+ # object unchanged.
+ result$plotObj <- do.call("resizeSavedPlot", c(
+ list(
+ name,
+ shinysession,
+ result$plotObj,
+ width,
+ height,
+ pixelratio,
+ res
+ ),
+ args
+ ))
+
+ # Save a cached copy of the plotObj. The recorded displaylist for
+ # the plot can't be serialized and restored properly within the same
+ # R session, so we NULL it out before saving. (The image data and
+ # other metadata be saved and restored just fine.) Displaylists can
+ # also be very large (~1.5MB for a basic ggplot), and they would not
+ # be commonly used. Note that displaylist serialization was fixed in
+ # revision 74506 (2e6c669), and should be in R 3.6. A MemoryCache
+ # doesn't need to serialize objects, so it could actually save a
+ # display list, but for the reasons listed previously, it's
+ # generally not worth it.
+ # The plotResult is not the same as the recordedPlot (it is used to
+ # retrieve coordmap information for ggplot2 objects) but it is only
+ # used in conjunction with the recordedPlot, and we'll remove it
+ # because it can be quite large.
+ result$plotObj$plotResult <- NULL
+ result$plotObj$recordedPlot <- NULL
+ cache$set(result$key, result$plotObj)
+ }
+
+ img <- result$plotObj$img
+ # Replace exact pixel dimensions; instead, the max-height and
+ # max-width will be set to 100% from CSS.
+ img$class <- "shiny-scalable"
+ img$width <- NULL
+ img$height <- NULL
+
+ img
+ }
+ )
+ }
+
+ # If renderPlot isn't going to adapt to the height of the div, then the
+ # div needs to adapt to the height of renderPlot. By default, plotOutput
+ # sets the height to 400px, so to make it adapt we need to override it
+ # with NULL.
+ outputFunc <- plotOutput
+ formals(outputFunc)['height'] <- list(NULL)
+
+ markRenderFunction(outputFunc, renderFunc, outputArgs = outputArgs)
+}
+
+
+#' Create a sizing function that grows at a given ratio
+#'
+#' Returns a function which takes a two-element vector representing an input
+#' width and height, and returns a two-element vector of width and height. The
+#' possible widths are the base width times the growthRate to any integer power.
+#' For example, with a base width of 500 and growth rate of 1.25, the possible
+#' widths include 320, 400, 500, 625, 782, and so on, both smaller and larger.
+#' Sizes are rounded up to the next pixel. Heights are computed the same way as
+#' widths.
+#'
+#' @param width,height Base width and height.
+#' @param growthRate Growth rate multiplier.
+#'
+#' @seealso This is to be used with \code{\link{renderCachedPlot}}.
+#'
+#' @examples
+#' f <- sizeGrowthRatio(500, 500, 1.25)
+#' f(c(400, 400))
+#' f(c(500, 500))
+#' f(c(530, 550))
+#' f(c(625, 700))
+#'
+#' @export
+sizeGrowthRatio <- function(width = 400, height = 400, growthRate = 1.2) {
+ round_dim_up <- function(x, base, rate) {
+ power <- ceiling(log(x / base, rate))
+ ceiling(base * rate^power)
+ }
+
+ function(dims) {
+ if (length(dims) != 2) {
+ stop("dims must be a vector with two numbers, for width and height.")
+ }
+ c(
+ round_dim_up(dims[1], width, growthRate),
+ round_dim_up(dims[2], height, growthRate)
+ )
+ }
+}
diff --git a/R/render-plot.R b/R/render-plot.R
index 9cce3c9c0..adc5f9509 100644
--- a/R/render-plot.R
+++ b/R/render-plot.R
@@ -133,10 +133,12 @@ renderPlot <- function(expr, width='auto', height='auto', res=72, ...,
function(result) {
dims <- getDims()
pixelratio <- session$clientData$pixelratio %OR% 1
- do.call("resizeSavedPlot", c(
+ result <- do.call("resizeSavedPlot", c(
list(name, shinysession, result, dims$width, dims$height, pixelratio, res),
args
))
+
+ result$img
}
)
}
@@ -154,23 +156,25 @@ renderPlot <- function(expr, width='auto', height='auto', res=72, ...,
resizeSavedPlot <- function(name, session, result, width, height, pixelratio, res, ...) {
if (result$img$width == width && result$img$height == height &&
result$pixelratio == pixelratio && result$res == res) {
- return(result$img)
+ return(result)
}
coordmap <- NULL
outfile <- plotPNG(function() {
grDevices::replayPlot(result$recordedPlot)
- coordmap <<- getCoordmap(result$plotResult, width, height, pixelratio, res)
+ coordmap <<- getCoordmap(result$plotResult, width*pixelratio, height*pixelratio, res*pixelratio)
}, width = width*pixelratio, height = height*pixelratio, res = res*pixelratio, ...)
on.exit(unlink(outfile), add = TRUE)
- img <- list(
+ result$img <- list(
src = session$fileUrl(name, outfile, contentType = "image/png"),
width = width,
height = height,
coordmap = coordmap,
error = attr(coordmap, "error", exact = TRUE)
)
+
+ result
}
drawPlot <- function(name, session, func, width, height, pixelratio, res, ...) {
@@ -227,7 +231,7 @@ drawPlot <- function(name, session, func, width, height, pixelratio, res, ...) {
list(
plotResult = value,
recordedPlot = grDevices::recordPlot(),
- coordmap = getCoordmap(value, width, height, pixelratio, res),
+ coordmap = getCoordmap(value, width*pixelratio, height*pixelratio, res*pixelratio),
pixelratio = pixelratio,
res = res
)
@@ -247,6 +251,7 @@ drawPlot <- function(name, session, func, width, height, pixelratio, res, ...) {
# Get coordmap error message if present
error = attr(result$coordmap, "error", exact = TRUE)
))
+
result
},
finally = function() {
@@ -279,22 +284,26 @@ custom_print.ggplot <- function(x) {
# below. For base graphics:
# plot(mtcars$wt, mtcars$mpg)
# str(getPrevPlotCoordmap(400, 300))
-# List of 1
-# $ :List of 4
-# ..$ domain :List of 4
-# .. ..$ left : num 1.36
-# .. ..$ right : num 5.58
-# .. ..$ bottom: num 9.46
-# .. ..$ top : num 34.8
-# ..$ range :List of 4
-# .. ..$ left : num 50.4
-# .. ..$ right : num 373
-# .. ..$ bottom: num 199
-# .. ..$ top : num 79.6
-# ..$ log :List of 2
-# .. ..$ x: NULL
-# .. ..$ y: NULL
-# ..$ mapping: Named list()
+# List of 2
+# $ panels:List of 1
+# ..$ :List of 4
+# .. ..$ domain :List of 4
+# .. .. ..$ left : num 1.36
+# .. .. ..$ right : num 5.58
+# .. .. ..$ bottom: num 9.46
+# .. .. ..$ top : num 34.8
+# .. ..$ range :List of 4
+# .. .. ..$ left : num 65.6
+# .. .. ..$ right : num 366
+# .. .. ..$ bottom: num 238
+# .. .. ..$ top : num 48.2
+# .. ..$ log :List of 2
+# .. .. ..$ x: NULL
+# .. .. ..$ y: NULL
+# .. ..$ mapping: Named list()
+# $ dims :List of 2
+# ..$ width : num 400
+# ..$ height: num 300
#
# For ggplot2, first you need to define the print.ggplot function from inside
# renderPlot, then use it to print the plot:
@@ -313,29 +322,33 @@ custom_print.ggplot <- function(x) {
# }
#
# p <- print(ggplot(mtcars, aes(wt, mpg)) + geom_point())
-# str(getGgplotCoordmap(p, 1, 72))
-# List of 1
-# $ :List of 10
-# ..$ panel : int 1
-# ..$ row : int 1
-# ..$ col : int 1
-# ..$ panel_vars: Named list()
-# ..$ log :List of 2
-# .. ..$ x: NULL
-# .. ..$ y: NULL
-# ..$ domain :List of 4
-# .. ..$ left : num 1.32
-# .. ..$ right : num 5.62
-# .. ..$ bottom: num 9.22
-# .. ..$ top : num 35.1
-# ..$ mapping :List of 2
-# .. ..$ x: chr "wt"
-# .. ..$ y: chr "mpg"
-# ..$ range :List of 4
-# .. ..$ left : num 40.8
-# .. ..$ right : num 446
-# .. ..$ bottom: num 263
-# .. ..$ top : num 14.4
+# str(getGgplotCoordmap(p, 400, 300, 72))
+# List of 2
+# $ panels:List of 1
+# ..$ :List of 8
+# .. ..$ panel : num 1
+# .. ..$ row : num 1
+# .. ..$ col : num 1
+# .. ..$ panel_vars: Named list()
+# .. ..$ log :List of 2
+# .. .. ..$ x: NULL
+# .. .. ..$ y: NULL
+# .. ..$ domain :List of 4
+# .. .. ..$ left : num 1.32
+# .. .. ..$ right : num 5.62
+# .. .. ..$ bottom: num 9.22
+# .. .. ..$ top : num 35.1
+# .. ..$ mapping :List of 2
+# .. .. ..$ x: chr "wt"
+# .. .. ..$ y: chr "mpg"
+# .. ..$ range :List of 4
+# .. .. ..$ left : num 33.3
+# .. .. ..$ right : num 355
+# .. .. ..$ bottom: num 328
+# .. .. ..$ top : num 5.48
+# $ dims :List of 2
+# ..$ width : num 400
+# ..$ height: num 300
#
# With a faceted ggplot2 plot, the outer list contains two objects, each of
# which represents one panel. In this example, there is one panelvar, but there
@@ -343,59 +356,63 @@ custom_print.ggplot <- function(x) {
# mtc <- mtcars
# mtc$am <- factor(mtc$am)
# p <- print(ggplot(mtc, aes(wt, mpg)) + geom_point() + facet_wrap(~ am))
-# str(getGgplotCoordmap(p, 1, 72))
+# str(getGgplotCoordmap(p, 400, 300, 72))
# List of 2
-# $ :List of 10
-# ..$ panel : int 1
-# ..$ row : int 1
-# ..$ col : int 1
-# ..$ panel_vars:List of 1
-# .. ..$ panelvar1: Factor w/ 2 levels "0","1": 1
-# ..$ log :List of 2
-# .. ..$ x: NULL
-# .. ..$ y: NULL
-# ..$ domain :List of 4
-# .. ..$ left : num 1.32
-# .. ..$ right : num 5.62
-# .. ..$ bottom: num 9.22
-# .. ..$ top : num 35.1
-# ..$ mapping :List of 3
-# .. ..$ x : chr "wt"
-# .. ..$ y : chr "mpg"
-# .. ..$ panelvar1: chr "am"
-# ..$ range :List of 4
-# .. ..$ left : num 45.6
-# .. ..$ right : num 317
-# .. ..$ bottom: num 251
-# .. ..$ top : num 35.7
-# $ :List of 10
-# ..$ panel : int 2
-# ..$ row : int 1
-# ..$ col : int 2
-# ..$ panel_vars:List of 1
-# .. ..$ panelvar1: Factor w/ 2 levels "0","1": 2
-# ..$ log :List of 2
-# .. ..$ x: NULL
-# .. ..$ y: NULL
-# ..$ domain :List of 4
-# .. ..$ left : num 1.32
-# .. ..$ right : num 5.62
-# .. ..$ bottom: num 9.22
-# .. ..$ top : num 35.1
-# ..$ mapping :List of 3
-# .. ..$ x : chr "wt"
-# .. ..$ y : chr "mpg"
-# .. ..$ panelvar1: chr "am"
-# ..$ range :List of 4
-# .. ..$ left : num 322
-# .. ..$ right : num 594
-# .. ..$ bottom: num 251
-# .. ..$ top : num 35.7
+# $ panels:List of 2
+# ..$ :List of 8
+# .. ..$ panel : num 1
+# .. ..$ row : int 1
+# .. ..$ col : int 1
+# .. ..$ panel_vars:List of 1
+# .. .. ..$ panelvar1: Factor w/ 2 levels "0","1": 1
+# .. ..$ log :List of 2
+# .. .. ..$ x: NULL
+# .. .. ..$ y: NULL
+# .. ..$ domain :List of 4
+# .. .. ..$ left : num 1.32
+# .. .. ..$ right : num 5.62
+# .. .. ..$ bottom: num 9.22
+# .. .. ..$ top : num 35.1
+# .. ..$ mapping :List of 3
+# .. .. ..$ x : chr "wt"
+# .. .. ..$ y : chr "mpg"
+# .. .. ..$ panelvar1: chr "am"
+# .. ..$ range :List of 4
+# .. .. ..$ left : num 33.3
+# .. .. ..$ right : num 191
+# .. .. ..$ bottom: num 328
+# .. .. ..$ top : num 23.1
+# ..$ :List of 8
+# .. ..$ panel : num 2
+# .. ..$ row : int 1
+# .. ..$ col : int 2
+# .. ..$ panel_vars:List of 1
+# .. .. ..$ panelvar1: Factor w/ 2 levels "0","1": 2
+# .. ..$ log :List of 2
+# .. .. ..$ x: NULL
+# .. .. ..$ y: NULL
+# .. ..$ domain :List of 4
+# .. .. ..$ left : num 1.32
+# .. .. ..$ right : num 5.62
+# .. .. ..$ bottom: num 9.22
+# .. .. ..$ top : num 35.1
+# .. ..$ mapping :List of 3
+# .. .. ..$ x : chr "wt"
+# .. .. ..$ y : chr "mpg"
+# .. .. ..$ panelvar1: chr "am"
+# .. ..$ range :List of 4
+# .. .. ..$ left : num 197
+# .. .. ..$ right : num 355
+# .. .. ..$ bottom: num 328
+# .. .. ..$ top : num 23.1
+# $ dims :List of 2
+# ..$ width : num 400
+# ..$ height: num 300
-getCoordmap <- function(x, width, height, pixelratio, res) {
+getCoordmap <- function(x, width, height, res) {
if (inherits(x, "ggplot_build_gtable")) {
- getGgplotCoordmap(x, pixelratio, res)
+ getGgplotCoordmap(x, width, height, res)
} else {
getPrevPlotCoordmap(width, height)
}
@@ -415,7 +432,7 @@ getPrevPlotCoordmap <- function(width, height) {
}
# Wrapped in double list because other types of plots can have multiple panels.
- list(list(
+ panel_info <- list(list(
# Bounds of the plot area, in data space
domain = list(
left = usrCoords[1],
@@ -425,10 +442,10 @@ getPrevPlotCoordmap <- function(width, height) {
),
# The bounds of the plot area, in DOM pixels
range = list(
- left = graphics::grconvertX(usrBounds[1], 'user', 'nfc') * width,
- right = graphics::grconvertX(usrBounds[2], 'user', 'nfc') * width,
- bottom = (1-graphics::grconvertY(usrBounds[3], 'user', 'nfc')) * height - 1,
- top = (1-graphics::grconvertY(usrBounds[4], 'user', 'nfc')) * height - 1
+ left = graphics::grconvertX(usrBounds[1], 'user', 'ndc') * width,
+ right = graphics::grconvertX(usrBounds[2], 'user', 'ndc') * width,
+ bottom = (1-graphics::grconvertY(usrBounds[3], 'user', 'ndc')) * height - 1,
+ top = (1-graphics::grconvertY(usrBounds[4], 'user', 'ndc')) * height - 1
),
log = list(
x = if (graphics::par('xlog')) 10 else NULL,
@@ -439,27 +456,43 @@ getPrevPlotCoordmap <- function(width, height) {
# (not an array) in JSON.
mapping = list(x = NULL)[0]
))
+
+ list(
+ panels = panel_info,
+ dims = list(
+ width = width,
+ height =height
+ )
+ )
}
# Given a ggplot_build_gtable object, return a coordmap for it.
-getGgplotCoordmap <- function(p, pixelratio, res) {
+getGgplotCoordmap <- function(p, width, height, res) {
if (!inherits(p, "ggplot_build_gtable"))
return(NULL)
tryCatch({
# Get info from built ggplot object
- info <- find_panel_info(p$build)
+ panel_info <- find_panel_info(p$build)
# Get ranges from gtable - it's possible for this to return more elements than
# info, because it calculates positions even for panels that aren't present.
# This can happen with facet_wrap.
- ranges <- find_panel_ranges(p$gtable, pixelratio, res)
+ ranges <- find_panel_ranges(p$gtable, res)
- for (i in seq_along(info)) {
- info[[i]]$range <- ranges[[i]]
+ for (i in seq_along(panel_info)) {
+ panel_info[[i]]$range <- ranges[[i]]
}
- return(info)
+ return(
+ list(
+ panels = panel_info,
+ dims = list(
+ width = width,
+ height = height
+ )
+ )
+ )
}, error = function(e) {
# If there was an error extracting info from the ggplot object, just return
@@ -486,13 +519,11 @@ find_panel_info <- function(b) {
# This is for ggplot2>2.2.1, after an API was introduced for extracting
# information about the plot object.
find_panel_info_api <- function(b) {
- # Workaround for check NOTE, until ggplot2 >2.2.1 is released
- colon_colon <- `::`
# Given a built ggplot object, return x and y domains (data space coords) for
# each panel.
- layout <- colon_colon("ggplot2", "summarise_layout")(b)
- coord <- colon_colon("ggplot2", "summarise_coord")(b)
- layers <- colon_colon("ggplot2", "summarise_layers")(b)
+ layout <- ggplot2::summarise_layout(b)
+ coord <- ggplot2::summarise_coord(b)
+ layers <- ggplot2::summarise_layers(b)
# Given x and y scale objects and a coord object, return a list that has
# the bases of log transformations for x and y, or NULL if it's not a
@@ -822,7 +853,7 @@ find_panel_info_non_api <- function(b, ggplot_format) {
# Given a gtable object, return the x and y ranges (in pixel dimensions)
-find_panel_ranges <- function(g, pixelratio, res) {
+find_panel_ranges <- function(g, res) {
# Given a vector of unit objects, return logical vector indicating which ones
# are "null" units. These units use the remaining available width/height --
# that is, the space not occupied by elements that have an absolute size.
@@ -952,26 +983,15 @@ find_panel_ranges <- function(g, pixelratio, res) {
layout <- layout[order(layout$t, layout$l), ]
layout$panel <- seq_len(nrow(layout))
- # When using a HiDPI client on a Linux server, the pixel
- # dimensions are doubled, so we have to divide the dimensions by
- # `pixelratio`. When a HiDPI client is used on a Mac server (with
- # the quartz device), the pixel dimensions _aren't_ doubled, even though
- # the image has double size. In the latter case we don't have to scale the
- # numbers down.
- pix_ratio <- 1
- if (!grepl("^quartz", names(grDevices::dev.cur()))) {
- pix_ratio <- pixelratio
- }
-
# Return list of lists, where each inner list has left, right, top, bottom
# values for a panel
lapply(seq_len(nrow(layout)), function(i) {
p <- layout[i, , drop = FALSE]
list(
- left = x_pos[p$l - 1] / pix_ratio,
- right = x_pos[p$r] / pix_ratio,
- bottom = y_pos[p$b] / pix_ratio,
- top = y_pos[p$t - 1] / pix_ratio
+ left = x_pos[p$l - 1],
+ right = x_pos[p$r],
+ bottom = y_pos[p$b],
+ top = y_pos[p$t - 1]
)
})
}
diff --git a/R/server-input-handlers.R b/R/server-input-handlers.R
index cc602e5b2..e1fab4431 100644
--- a/R/server-input-handlers.R
+++ b/R/server-input-handlers.R
@@ -142,6 +142,7 @@ registerInputHandler("shiny.matrix", function(data, ...) {
return(m)
})
+
registerInputHandler("shiny.number", function(val, ...){
ifelse(is.null(val), NA, val)
})
@@ -220,3 +221,21 @@ registerInputHandler("shiny.file", function(val, shinysession, name) {
val
})
+
+
+# to be used with !!!answer
+registerInputHandler("shiny.symbolList", function(val, ...) {
+ if (is.null(val)) {
+ list()
+ } else {
+ lapply(val, as.symbol)
+ }
+})
+# to be used with !!answer
+registerInputHandler("shiny.symbol", function(val, ...) {
+ if (is.null(val) || identical(val, "")) {
+ NULL
+ } else {
+ as.symbol(val)
+ }
+})
diff --git a/R/server.R b/R/server.R
index 5e43d91cf..fc1a4f9ad 100644
--- a/R/server.R
+++ b/R/server.R
@@ -419,7 +419,10 @@ startApp <- function(appObj, port, host, quiet) {
if (is.numeric(port) || is.integer(port)) {
if (!quiet) {
- message('\n', 'Listening on http://', host, ':', port)
+ hostString <- host
+ if (httpuv::ipFamily(host) == 6L)
+ hostString <- paste0("[", hostString, "]")
+ message('\n', 'Listening on http://', hostString, ':', port)
}
return(startServer(host, port, handlerManager$createHttpuvApp()))
} else if (is.character(port)) {
@@ -576,12 +579,16 @@ runApp <- function(appDir=getwd(),
.globals$running <- FALSE
}, add = TRUE)
- # Enable per-app Shiny options
+ # Enable per-app Shiny options, for shinyOptions() and getShinyOption().
oldOptionSet <- .globals$options
on.exit({
.globals$options <- oldOptionSet
},add = TRUE)
+ # A unique identifier associated with this run of this application. It is
+ # shared across sessions.
+ shinyOptions(appToken = createUniqueId(8))
+
# Make warnings print immediately
# Set pool.scheduler to support pool package
ops <- options(
@@ -591,6 +598,11 @@ runApp <- function(appDir=getwd(),
)
on.exit(options(ops), add = TRUE)
+ # Set up default cache for app.
+ if (is.null(getShinyOption("cache"))) {
+ shinyOptions(cache = MemoryCache$new())
+ }
+
appParts <- as.shiny.appobj(appDir)
# The lines below set some of the app's running options, which
@@ -770,8 +782,17 @@ runApp <- function(appDir=getwd(),
}, add = TRUE)
if (!is.character(port)) {
- # http://0.0.0.0/ doesn't work on QtWebKit (i.e. RStudio viewer)
- browseHost <- if (identical(host, "0.0.0.0")) "127.0.0.1" else host
+ browseHost <- host
+ if (identical(host, "0.0.0.0")) {
+ # http://0.0.0.0/ doesn't work on QtWebKit (i.e. RStudio viewer)
+ browseHost <- "127.0.0.1"
+ } else if (identical(host, "::")) {
+ browseHost <- "::1"
+ }
+
+ if (httpuv::ipFamily(browseHost) == 6L) {
+ browseHost <- paste0("[", browseHost, "]")
+ }
appUrl <- paste("http://", browseHost, ":", port, sep="")
if (is.function(launch.browser))
diff --git a/R/shiny.R b/R/shiny.R
index 33d589032..24e7a54e1 100644
--- a/R/shiny.R
+++ b/R/shiny.R
@@ -445,6 +445,8 @@ ShinySession <- R6Class(
testMode = FALSE, # Are we running in test mode?
testExportExprs = list(),
outputValues = list(), # Saved output values (for testing mode)
+ currentOutputName = NULL, # Name of the currently-running output
+ outputInfo = list(), # List of information for each output
testSnapshotUrl = character(0),
sendResponse = function(requestMsg, value) {
@@ -491,6 +493,16 @@ ShinySession <- R6Class(
return(defaultValue)
return(result)
},
+ withCurrentOutput = function(name, expr) {
+ if (!is.null(private$currentOutputName)) {
+ stop("Nested calls to withCurrentOutput() are not allowed.")
+ }
+
+ promises::with_promise_domain(
+ createVarPromiseDomain(private, "currentOutputName", name),
+ expr
+ )
+ },
shouldSuspend = function(name) {
# Find corresponding hidden state clientData variable, with the format
# "output_foo_hidden". (It comes from .clientdata_output_foo_hidden
@@ -691,6 +703,7 @@ ShinySession <- R6Class(
request = 'ANY', # Websocket request object
singletons = character(0), # Tracks singleton HTML fragments sent to the page
userData = 'environment',
+ cache = NULL, # A cache object used in the session
user = NULL,
groups = NULL,
@@ -725,6 +738,8 @@ ShinySession <- R6Class(
private$.outputs <- list()
private$.outputOptions <- list()
+ self$cache <- MemoryCache$new()
+
private$bookmarkCallbacks <- Callbacks$new()
private$bookmarkedCallbacks <- Callbacks$new()
private$restoreCallbacks <- Callbacks$new()
@@ -901,9 +916,11 @@ ShinySession <- R6Class(
# Create subdir for this scope
if (!is.null(state$dir)) {
scopeState$dir <- file.path(state$dir, namespace)
- res <- dir.create(scopeState$dir)
- if (res == FALSE) {
- stop("Error creating subdirectory for scope ", namespace)
+ if (!dirExists(scopeState$dir)) {
+ res <- dir.create(scopeState$dir)
+ if (res == FALSE) {
+ stop("Error creating subdirectory for scope ", namespace)
+ }
}
}
@@ -961,8 +978,9 @@ ShinySession <- R6Class(
stop("x must be a reactivevalues object")
impl <- .subset2(x, 'impl')
- impl$freeze(name)
- self$onFlushed(function() impl$thaw(name))
+ key <- .subset2(x, 'ns')(name)
+ impl$freeze(key)
+ self$onFlushed(function() impl$thaw(key))
},
onSessionEnded = function(sessionEndedCallback) {
@@ -1070,7 +1088,11 @@ ShinySession <- R6Class(
# to include the $then/$catch calls below?
hybrid_chain(
hybrid_chain(
- shinyCallingHandlers(func()),
+ {
+ private$withCurrentOutput(name, {
+ shinyCallingHandlers(func())
+ })
+ },
catch = function(cond) {
if (inherits(cond, "shiny.custom.error")) {
if (isTRUE(getOption("show.error.messages"))) printError(cond)
@@ -1313,6 +1335,47 @@ ShinySession <- R6Class(
}
},
+ getCurrentOutputInfo = function() {
+ name <- private$currentOutputName
+
+ tmp_info <- private$outputInfo[[name]] %OR% list(name = name)
+
+ # cd_names() returns names of all items in clientData, without taking a
+ # reactive dependency. It is a function and it's memoized, so that we do
+ # the (relatively) expensive isolate(names(...)) call only when needed,
+ # and at most one time in this function.
+ .cd_names <- NULL
+ cd_names <- function() {
+ if (is.null(.cd_names)) {
+ .cd_names <<- isolate(names(self$clientData))
+ }
+ .cd_names
+ }
+
+ # If we don't already have width for this output info, see if it's
+ # present, and if so, add it.
+ if (! ("width" %in% names(tmp_info)) ) {
+ width_name <- paste0("output_", name, "_width")
+ if (width_name %in% cd_names()) {
+ tmp_info$width <- reactive({
+ self$clientData[[width_name]]
+ })
+ }
+ }
+
+ if (! ("height" %in% names(tmp_info)) ) {
+ height_name <- paste0("output_", name, "_height")
+ if (height_name %in% cd_names()) {
+ tmp_info$height <- reactive({
+ self$clientData[[height_name]]
+ })
+ }
+ }
+
+ private$outputInfo[[name]] <- tmp_info
+ private$outputInfo[[name]]
+ },
+
createBookmarkObservers = function() {
# This registers observers for bookmarking to work.
@@ -2056,6 +2119,16 @@ outputOptions <- function(x, name, ...) {
.subset2(x, 'impl')$outputOptions(name, ...)
}
+
+#' Get information about the output that is currently being executed.
+#'
+#' @param session The current Shiny session.
+#'
+#' @export
+getCurrentOutputInfo <- function(session = getDefaultReactiveDomain()) {
+ session$getCurrentOutputInfo()
+}
+
#' Add callbacks for Shiny session events
#'
#' These functions are for registering callbacks on Shiny session events.
@@ -2124,7 +2197,9 @@ flushPendingSessions <- function() {
#' called from within the server function, this will default to the current
#' session, and the callback will be invoked when the current session ends. If
#' \code{onStop} is called outside a server function, then the callback will
-#' be invoked with the application exits.
+#' be invoked with the application exits. If \code{NULL}, it is the same as
+#' calling \code{onStop} outside of the server function, and the callback will
+#' be invoked when the application exits.
#'
#'
#' @seealso \code{\link{onSessionEnded}()} for the same functionality, but at
@@ -2184,7 +2259,7 @@ flushPendingSessions <- function() {
#' }
#' @export
onStop <- function(fun, session = getDefaultReactiveDomain()) {
- if (is.null(getDefaultReactiveDomain())) {
+ if (is.null(session)) {
return(.globals$onStopCallbacks$register(fun))
} else {
# Note: In the future if we allow scoping the onStop() callback to modules
diff --git a/R/shinywrappers.R b/R/shinywrappers.R
index f1c518d87..86ae5ab1b 100644
--- a/R/shinywrappers.R
+++ b/R/shinywrappers.R
@@ -1,4 +1,4 @@
-globalVariables('func')
+utils::globalVariables('func')
#' Mark a function as a render function
#'
@@ -118,7 +118,7 @@ useRenderFunction <- function(renderFunc, inline = FALSE) {
# If there's a namespace, we must respect it
id <- getDefaultReactiveDomain()$ns(id)
}
-
+
# Make the id the first positional argument
outputArgs <- c(list(id), outputArgs)
@@ -451,7 +451,7 @@ renderText <- function(expr, env=parent.frame(), quoted=FALSE,
#' call to \code{\link{uiOutput}} when \code{renderUI} is used in an
#' interactive R Markdown document.
#'
-#' @seealso \code{\link{uiOutput}}
+#' @seealso \code{\link{uiOutput}}
#' @export
#' @examples
#' ## Only run examples in interactive R sessions
diff --git a/R/update-input.R b/R/update-input.R
index 5c13fe41d..253071543 100644
--- a/R/update-input.R
+++ b/R/update-input.R
@@ -383,13 +383,17 @@ updateNumericInput <- function(session, inputId, label = NULL, value = NULL,
session$sendInputMessage(inputId, message)
}
-#' Change the value of a slider input on the client
+#' Update Slider Input Widget
+#'
+#' Change the value of a slider input on the client.
#'
#' @template update-input
#' @param value The value to set for the input object.
#' @param min Minimum value.
#' @param max Maximum value.
#' @param step Step size.
+#' @param timeFormat Date and POSIXt formatting.
+#' @param timezone The timezone offset for POSIXt objects.
#'
#' @seealso \code{\link{sliderInput}}
#'
@@ -422,22 +426,15 @@ updateNumericInput <- function(session, inputId, label = NULL, value = NULL,
#' }
#' @export
updateSliderInput <- function(session, inputId, label = NULL, value = NULL,
- min = NULL, max = NULL, step = NULL)
+ min = NULL, max = NULL, step = NULL, timeFormat = NULL, timezone = NULL)
{
- # Make sure that value, min, max all have the same type, because we need
- # special handling for dates and datetimes.
- vals <- dropNulls(list(value, min, max))
+ dataType <- getSliderType(min, max, value)
- type <- unique(lapply(vals, function(x) {
- if (inherits(x, "Date")) "date"
- else if (inherits(x, "POSIXt")) "datetime"
- else "number"
- }))
- if (length(type) > 1) {
- stop("Type mismatch for value, min, and max")
+ if (is.null(timeFormat)) {
+ timeFormat <- switch(dataType, date = "%F", datetime = "%F %T", number = NULL)
}
- if ((length(type) == 1) && (type == "date" || type == "datetime")) {
+ if (dataType == "date" || dataType == "datetime") {
to_ms <- function(x) 1000 * as.numeric(as.POSIXct(x))
if (!is.null(min)) min <- to_ms(min)
if (!is.null(max)) max <- to_ms(max)
@@ -449,7 +446,10 @@ updateSliderInput <- function(session, inputId, label = NULL, value = NULL,
value = formatNoSci(value),
min = formatNoSci(min),
max = formatNoSci(max),
- step = formatNoSci(step)
+ step = formatNoSci(step),
+ `data-type` = dataType,
+ `time-format` = timeFormat,
+ timezone = timezone
))
session$sendInputMessage(inputId, message)
}
@@ -576,7 +576,7 @@ updateRadioButtons <- function(session, inputId, label = NULL, choices = NULL,
#' @template update-input
#' @inheritParams selectInput
#'
-#' @seealso \code{\link{selectInput}}
+#' @seealso \code{\link{selectInput}} \code{\link{varSelectInput}}
#'
#' @examples
#' ## Only run examples in interactive R sessions
@@ -643,10 +643,22 @@ updateSelectizeInput <- function(session, inputId, label = NULL, choices = NULL,
return(updateSelectInput(session, inputId, label, choices, selected))
}
- # convert a single vector to a data frame so it returns {label: , value: }
- # other objects return arbitrary JSON {x: , y: , foo: , ...}
- choices <- if (is.atomic(choices)) {
- # fast path
+ noOptGroup <- TRUE
+ if (is.list(choices)) {
+ # check if list is nested
+ for (i in seq_along(choices)) {
+ if (is.list(choices[[i]]) || length(choices[[i]]) > 1) {
+ noOptGroup <- FALSE
+ break()
+ }
+ }
+ }
+ # convert choices to a data frame so it returns [{label: , value: , group: },...]
+ choices <- if (is.atomic(choices) || noOptGroup) {
+ # fast path for vectors and flat lists
+ if (is.list(choices)) {
+ choices <- unlist(choices)
+ }
if (is.null(names(choices))) {
lab <- as.character(choices)
} else {
@@ -659,8 +671,52 @@ updateSelectizeInput <- function(session, inputId, label = NULL, choices = NULL,
}
data.frame(label = lab, value = choices, stringsAsFactors = FALSE)
} else {
- # slow path
- as.data.frame(choices, stringsAsFactors = FALSE)
+ # slow path for nested lists/optgroups
+ list_names <- names(choices)
+ if (is.null(list_names)) {
+ list_names <- rep("", length(choices))
+ }
+
+ choice_list <- mapply(choices, list_names, FUN = function (choice, name) {
+ group <- ""
+ lab <- name
+ if (lab == "") lab <- as.character(choice)
+
+ if (is.list(choice) || length(choice) > 1) {
+ group <- rep(name, length(choice))
+ choice <- unlist(choice)
+
+ if (is.null(names(choice))) {
+ lab <- as.character(choice)
+ } else {
+ lab <- names(choice)
+ # replace empty names like: choices = c(a = 1, 2)
+ # in this case: names(choices) = c("a", "")
+ # with replacement below choices will be: lab = c("a", "2")
+ empty_names_indices <- lab == ""
+ lab[empty_names_indices] <- as.character(choice[empty_names_indices])
+ }
+ }
+
+ list(
+ label = lab,
+ value = as.character(choice),
+ group = group
+ )
+ }, SIMPLIFY = FALSE)
+
+
+ extract_vector <- function(x, name) {
+ vecs <- lapply(x, `[[`, name)
+ do.call(c, vecs)
+ }
+
+ data.frame(
+ label = extract_vector(choice_list, "label"),
+ value = extract_vector(choice_list, "value"),
+ group = extract_vector(choice_list, "group"),
+ stringsAsFactors = FALSE, row.names = NULL
+ )
}
value <- unname(selected)
@@ -673,6 +729,43 @@ updateSelectizeInput <- function(session, inputId, label = NULL, choices = NULL,
))
session$sendInputMessage(inputId, message)
}
+#' @rdname updateSelectInput
+#' @inheritParams varSelectInput
+#' @export
+updateVarSelectInput <- function(session, inputId, label = NULL, data = NULL, selected = NULL) {
+ if (is.null(data)) {
+ choices <- NULL
+ } else {
+ choices <- colnames(data)
+ }
+ updateSelectInput(
+ session = session,
+ inputId = inputId,
+ label = label,
+ choices = choices,
+ selected = selected
+ )
+}
+#' @rdname updateSelectInput
+#' @export
+updateVarSelectizeInput <- function(session, inputId, label = NULL, data = NULL, selected = NULL, options = list(), server = FALSE) {
+ if (is.null(data)) {
+ choices <- NULL
+ } else {
+ choices <- colnames(data)
+ }
+ updateSelectizeInput(
+ session = session,
+ inputId = inputId,
+ label = label,
+ choices = choices,
+ selected = selected,
+ options = options,
+ server = server
+ )
+}
+
+
selectizeJSON <- function(data, req) {
query <- parseQueryString(req$QUERY_STRING)
diff --git a/R/utils.R b/R/utils.R
index 87898b6fa..186970926 100644
--- a/R/utils.R
+++ b/R/utils.R
@@ -269,6 +269,25 @@ dirExists <- function(paths) {
file.exists(paths) & file.info(paths)$isdir
}
+# Removes empty directory (vectorized). This is needed because file.remove()
+# on Unix will remove empty directories, but on Windows, it will not. On
+# Windows, you would need to use unlink(recursive=TRUE), which is not very
+# safe. This function does it safely on Unix and Windows.
+dirRemove <- function(path) {
+ for (p in path) {
+ if (!dirExists(p)) {
+ stop("Cannot remove non-existent directory ", p, ".")
+ }
+ if (length(dir(p, all.files = TRUE, no.. = TRUE)) != 0) {
+ stop("Cannot remove non-empty directory ", p, ".")
+ }
+ result <- unlink(p, recursive = TRUE)
+ if (result == 1) {
+ stop("Error removing directory ", p, ".")
+ }
+ }
+}
+
# Attempt to join a path and relative path, and turn the result into a
# (normalized) absolute path. The result will only be returned if it is an
# existing file/directory and is a descendant of dir.
@@ -1679,14 +1698,14 @@ createVarPromiseDomain <- function(env, name, value) {
force(env)
force(name)
force(value)
-
+
promises::new_promise_domain(
wrapOnFulfilled = function(onFulfilled) {
function(...) {
orig <- env[[name]]
env[[name]] <- value
on.exit(env[[name]] <- orig)
-
+
onFulfilled(...)
}
},
@@ -1695,7 +1714,7 @@ createVarPromiseDomain <- function(env, name, value) {
orig <- env[[name]]
env[[name]] <- value
on.exit(env[[name]] <- orig)
-
+
onRejected(...)
}
},
@@ -1707,4 +1726,17 @@ createVarPromiseDomain <- function(env, name, value) {
force(expr)
}
)
-}
\ No newline at end of file
+}
+
+getSliderType <- function(min, max, value) {
+ vals <- dropNulls(list(value, min, max))
+ type <- unique(lapply(vals, function(x) {
+ if (inherits(x, "Date")) "date"
+ else if (inherits(x, "POSIXt")) "datetime"
+ else "number"
+ }))
+ if (length(type) > 1) {
+ stop("Type mismatch for `min`, `max`, and `value`. Each must be Date, POSIXt, or number.")
+ }
+ type[[1]]
+}
diff --git a/inst/staticdocs/index.r b/inst/staticdocs/index.r
index fb251e104..4766945f3 100644
--- a/inst/staticdocs/index.r
+++ b/inst/staticdocs/index.r
@@ -41,6 +41,7 @@ sd_section("UI Inputs",
"numericInput",
"radioButtons",
"selectInput",
+ "varSelectInput",
"sliderInput",
"submitButton",
"textInput",
@@ -104,6 +105,7 @@ sd_section("Rendering functions",
"Functions that you use in your application's server side code, assigning them to outputs that appear in your user interface.",
c(
"renderPlot",
+ "renderCachedPlot",
"renderText",
"renderPrint",
"renderDataTable",
@@ -195,7 +197,9 @@ sd_section("Utility functions",
"exprToFunction",
"installExprFunction",
"parseQueryString",
+ "getCurrentOutputInfo",
"plotPNG",
+ "sizeGrowthRatio",
"exportTestValues",
"setSerializer",
"snapshotExclude",
@@ -206,7 +210,10 @@ sd_section("Utility functions",
"shinyDeprecated",
"serverInfo",
"shiny-options",
- "onStop"
+ "onStop",
+ "diskCache",
+ "memoryCache",
+ "key_missing"
)
)
sd_section("Plot interaction",
diff --git a/inst/www/shared/shiny.css b/inst/www/shared/shiny.css
index e049b119a..356607316 100644
--- a/inst/www/shared/shiny.css
+++ b/inst/www/shared/shiny.css
@@ -12,6 +12,11 @@ pre.shiny-text-output.noplaceholder:empty {
height: 0;
}
+.shiny-image-output img.shiny-scalable, .shiny-plot-output img.shiny-scalable {
+ max-width: 100%;
+ max-height: 100%;
+}
+
#shiny-disconnected-overlay {
position: fixed;
top: 0;
@@ -381,3 +386,10 @@ pre.shiny-text-output.noplaceholder:empty {
.shiny-file-input-over {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(76, 174, 76, .6);
}
+
+/* Overrides bootstrap-datepicker3.css styling for invalid date ranges.
+ See https://github.com/rstudio/shiny/issues/2042 for details. */
+.datepicker table tbody tr td.disabled,
+.datepicker table tbody tr td.disabled:hover {
+ color: #aaa;
+}
diff --git a/inst/www/shared/shiny.js b/inst/www/shared/shiny.js
index a9e88f51d..5b0daa942 100644
--- a/inst/www/shared/shiny.js
+++ b/inst/www/shared/shiny.js
@@ -14,7 +14,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var exports = window.Shiny = window.Shiny || {};
- exports.version = "1.0.5.9000"; // Version number inserted by Grunt
+ exports.version = "1.1.0.9001"; // Version number inserted by Grunt
var origPushState = window.history.pushState;
window.history.pushState = function () {
@@ -251,11 +251,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
function mapValues(obj, f) {
var newObj = {};
for (var key in obj) {
- if (obj.hasOwnProperty(key)) newObj[key] = f(obj[key]);
+ if (obj.hasOwnProperty(key)) newObj[key] = f(obj[key], key, obj);
}
return newObj;
}
+ // This is does the same as Number.isNaN, but that function unfortunately does
+ // not exist in any version of IE.
+ function isnan(x) {
+ return typeof x === 'number' && isNaN(x);
+ }
+
// Binary equality function used by the equal function.
function _equal(x, y) {
if ($.type(x) === "object" && $.type(y) === "object") {
@@ -2570,9 +2576,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var $el = $(el);
var img;
- // Remove event handlers that were added in previous renderValue()
- $el.off('.image_output');
-
// Get existing img element if present.
var $img = $el.find('img');
@@ -2647,7 +2650,19 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
}
}
- if (!opts.coordmap) opts.coordmap = [];
+ if (!opts.coordmap) {
+ opts.coordmap = {
+ panels: [],
+ dims: {
+ height: null,
+ width: null
+ }
+ };
+ }
+
+ // Remove event handlers that were added in previous runs of this function.
+ $el.off('.image_output');
+ $img.off('.image_output');
imageutils.initCoordmap($el, opts.coordmap);
@@ -2668,9 +2683,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var clickHandler = imageutils.createClickHandler(opts.clickId, opts.clickClip, opts.coordmap);
$el.on('mousedown2.image_output', clickHandler.mousedown);
+ $el.on('resize.image_output', clickHandler.onResize);
+
// When img is reset, do housekeeping: clear $el's mouse listener and
// call the handler's onResetImg callback.
- $img.on('reset', clickHandler.onResetImg);
+ $img.on('reset.image_output', clickHandler.onResetImg);
}
if (opts.dblclickId) {
@@ -2679,7 +2696,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var dblclickHandler = imageutils.createClickHandler(opts.dblclickId, opts.clickClip, opts.coordmap);
$el.on('dblclick2.image_output', dblclickHandler.mousedown);
- $img.on('reset', dblclickHandler.onResetImg);
+ $el.on('resize.image_output', dblclickHandler.onResize);
+ $img.on('reset.image_output', dblclickHandler.onResetImg);
}
if (opts.hoverId) {
@@ -2687,7 +2705,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
$el.on('mousemove.image_output', hoverHandler.mousemove);
$el.on('mouseout.image_output', hoverHandler.mouseout);
- $img.on('reset', hoverHandler.onResetImg);
+ $el.on('resize.image_output', hoverHandler.onResize);
+ $img.on('reset.image_output', hoverHandler.onResetImg);
}
if (opts.brushId) {
@@ -2707,7 +2726,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
$el.on('mousedown.image_output', brushHandler.mousedown);
$el.on('mousemove.image_output', brushHandler.mousemove);
- $img.on('reset', brushHandler.onResetImg);
+ $el.on('resize.image_output', brushHandler.onResize);
+ $img.on('reset.image_output', brushHandler.onResetImg);
}
if (opts.clickId || opts.dblclickId || opts.hoverId || opts.brushId) {
@@ -2730,15 +2750,21 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
}).remove();
OutputBinding.prototype.clearError.call(this, el);
+ },
+
+ resize: function resize(el, width, height) {
+ $(el).find("img").trigger("resize");
}
});
outputBindings.register(imageOutputBinding, 'shiny.imageOutput');
var imageutils = {};
- // Modifies the panel objects in a coordmap, adding scale(), scaleInv(),
- // and clip() functions to each one.
- imageutils.initPanelScales = function (coordmap) {
+ // Modifies the panel objects in a coordmap, adding scaleImgToData(),
+ // scaleDataToImg(), and clipImg() functions to each one. The panel objects
+ // use img and data coordinates only; they do not use css coordinates. The
+ // domain is in data coordinates; the range is in img coordinates.
+ imageutils.initPanelScales = function (panels) {
// Map a value x from a domain to a range. If clip is true, clip it to the
// range.
function mapLinear(x, domainMin, domainMax, rangeMin, rangeMax, clip) {
@@ -2783,58 +2809,84 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var xscaler = scaler1D(d.left, d.right, r.left, r.right, xlog);
var yscaler = scaler1D(d.bottom, d.top, r.bottom, r.top, ylog);
- panel.scale = function (val, clip) {
- return {
- x: xscaler.scale(val.x, clip),
- y: yscaler.scale(val.y, clip)
- };
+ // Given an object of form {x:1, y:2}, or {x:1, xmin:2:, ymax: 3}, convert
+ // from data coordinates to img. Whether a value is converted as x or y
+ // depends on the first character of the key.
+ panel.scaleDataToImg = function (val, clip) {
+ return mapValues(val, function (value, key) {
+ var prefix = key.substring(0, 1);
+ if (prefix === "x") {
+ return xscaler.scale(value, clip);
+ } else if (prefix === "y") {
+ return yscaler.scale(value, clip);
+ }
+ return null;
+ });
};
- panel.scaleInv = function (val, clip) {
- return {
- x: xscaler.scaleInv(val.x, clip),
- y: yscaler.scaleInv(val.y, clip)
- };
+ panel.scaleImgToData = function (val, clip) {
+ return mapValues(val, function (value, key) {
+ var prefix = key.substring(0, 1);
+ if (prefix === "x") {
+ return xscaler.scaleInv(value, clip);
+ } else if (prefix === "y") {
+ return yscaler.scaleInv(value, clip);
+ }
+ return null;
+ });
};
- // Given a scaled offset (in pixels), clip it to the nearest panel region.
- panel.clip = function (offset) {
+ // Given a scaled offset (in img pixels), clip it to the nearest panel region.
+ panel.clipImg = function (offset_img) {
var newOffset = {
- x: offset.x,
- y: offset.y
+ x: offset_img.x,
+ y: offset_img.y
};
var bounds = panel.range;
- if (offset.x > bounds.right) newOffset.x = bounds.right;else if (offset.x < bounds.left) newOffset.x = bounds.left;
+ if (offset_img.x > bounds.right) newOffset.x = bounds.right;else if (offset_img.x < bounds.left) newOffset.x = bounds.left;
- if (offset.y > bounds.bottom) newOffset.y = bounds.bottom;else if (offset.y < bounds.top) newOffset.y = bounds.top;
+ if (offset_img.y > bounds.bottom) newOffset.y = bounds.bottom;else if (offset_img.y < bounds.top) newOffset.y = bounds.top;
return newOffset;
};
}
// Add the functions to each panel object.
- for (var i = 0; i < coordmap.length; i++) {
- var panel = coordmap[i];
+ for (var i = 0; i < panels.length; i++) {
+ var panel = panels[i];
addScaleFuns(panel);
}
};
// This adds functions to the coordmap object to handle various
- // coordinate-mapping tasks, and send information to the server.
- // The input coordmap is an array of objects, each of which represents a panel.
- // coordmap must be an array, even if empty, so that it can be modified in
- // place; when empty, we add a dummy panel to the array.
- // It also calls initPanelScales, which modifies each panel object to have
- // scale, scaleInv, and clip functions.
+ // coordinate-mapping tasks, and send information to the server. The input
+ // coordmap is an array of objects, each of which represents a panel. coordmap
+ // must be an array, even if empty, so that it can be modified in place; when
+ // empty, we add a dummy panel to the array. It also calls initPanelScales,
+ // which modifies each panel object to have scaleImgToData, scaleDataToImg,
+ // and clip functions.
+ //
+ // There are three coordinate spaces which we need to translate between:
+ //
+ // 1. css: The pixel coordinates in the web browser, also known as CSS pixels.
+ // The origin is the upper-left corner of the (not including padding
+ // and border).
+ // 2. img: The pixel coordinates of the image data. A common case is on a
+ // HiDPI device, where the source PNG image could be 1000 pixels wide but
+ // be displayed in 500 CSS pixels. Another case is when the image has
+ // additional scaling due to CSS transforms or width.
+ // 3. data: The coordinates in the data space. This is a bit more complicated
+ // than the other two, because there can be multiple panels (as in facets).
imageutils.initCoordmap = function ($el, coordmap) {
var el = $el[0];
+ var $img = $el.find("img");
// If we didn't get any panels, create a dummy one where the domain and range
// are simply the pixel dimensions.
// that we modify.
- if (coordmap.length === 0) {
+ if (coordmap.panels.length === 0) {
var bounds = {
top: 0,
left: 0,
@@ -2842,7 +2894,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
bottom: el.clientHeight - 1
};
- coordmap[0] = {
+ coordmap.panels[0] = {
domain: bounds,
range: bounds,
mapping: {}
@@ -2850,86 +2902,122 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
}
// Add scaling functions to each panel
- imageutils.initPanelScales(coordmap);
+ imageutils.initPanelScales(coordmap.panels);
- // Firefox doesn't have offsetX/Y, so we need to use an alternate
- // method of calculation for it. Even though other browsers do have
- // offsetX/Y, we need to calculate relative to $el, because sometimes the
- // mouse event can come with offset relative to other elements on the
- // page. This happens when the event listener is bound to, say, window.
- coordmap.mouseOffset = function (mouseEvent) {
- var offset = $el.offset();
+ // This returns the offset of the mouse in CSS pixels relative to the img,
+ // but not including the padding or border, if present.
+ coordmap.mouseOffsetCss = function (mouseEvent) {
+ var img_origin = findOrigin($img);
+
+ // The offset of the mouse from the upper-left corner of the img, in
+ // pixels.
return {
- x: mouseEvent.pageX - offset.left,
- y: mouseEvent.pageY - offset.top
+ x: mouseEvent.pageX - img_origin.x,
+ y: mouseEvent.pageY - img_origin.y
};
};
- // Given two sets of x/y coordinates, return an object representing the
- // min and max x and y values. (This could be generalized to any number
- // of points).
- coordmap.findBox = function (offset1, offset2) {
+ // Given an offset in an img in CSS pixels, return the corresponding offset
+ // in source image pixels. The offset_css can have properties like "x",
+ // "xmin", "y", and "ymax" -- anything that starts with "x" and "y". If the
+ // img content is 1000 pixels wide, but is scaled to 400 pixels on screen,
+ // and the input is x:400, then this will return x:1000.
+ coordmap.scaleCssToImg = function (offset_css) {
+ var pixel_scaling = coordmap.imgToCssScalingRatio();
+
+ var result = mapValues(offset_css, function (value, key) {
+ var prefix = key.substring(0, 1);
+
+ if (prefix === "x") {
+ return offset_css[key] / pixel_scaling.x;
+ } else if (prefix === "y") {
+ return offset_css[key] / pixel_scaling.y;
+ }
+ return null;
+ });
+
+ return result;
+ };
+
+ // Given an offset in an img, in source image pixels, return the
+ // corresponding offset in CSS pixels. If the img content is 1000 pixels
+ // wide, but is scaled to 400 pixels on screen, and the input is x:1000,
+ // then this will return x:400.
+ coordmap.scaleImgToCss = function (offset_img) {
+ var pixel_scaling = coordmap.imgToCssScalingRatio();
+
+ var result = mapValues(offset_img, function (value, key) {
+ var prefix = key.substring(0, 1);
+
+ if (prefix === "x") {
+ return offset_img[key] * pixel_scaling.x;
+ } else if (prefix === "y") {
+ return offset_img[key] * pixel_scaling.y;
+ }
+ return null;
+ });
+
+ return result;
+ };
+
+ // Returns the x and y ratio the image content is scaled to on screen. If
+ // the image data is 1000 pixels wide and is scaled to 300 pixels on screen,
+ // then this returns 0.3. (Note the 300 pixels refers to CSS pixels.)
+ coordmap.imgToCssScalingRatio = function () {
+ var img_dims = findDims($img);
return {
- xmin: Math.min(offset1.x, offset2.x),
- xmax: Math.max(offset1.x, offset2.x),
- ymin: Math.min(offset1.y, offset2.y),
- ymax: Math.max(offset1.y, offset2.y)
+ x: img_dims.x / coordmap.dims.width,
+ y: img_dims.y / coordmap.dims.height
};
};
- // Shift an array of values so that they are within a min and max.
- // The vals will be shifted so that they maintain the same spacing
- // internally. If the range in vals is larger than the range of
- // min and max, the result might not make sense.
- coordmap.shiftToRange = function (vals, min, max) {
- if (!(vals instanceof Array)) vals = [vals];
-
- var maxval = Math.max.apply(null, vals);
- var minval = Math.min.apply(null, vals);
- var shiftAmount = 0;
- if (maxval > max) {
- shiftAmount = max - maxval;
- } else if (minval < min) {
- shiftAmount = min - minval;
- }
-
- var newvals = [];
- for (var i = 0; i < vals.length; i++) {
- newvals[i] = vals[i] + shiftAmount;
- }
- return newvals;
+ coordmap.cssToImgScalingRatio = function () {
+ var res = coordmap.imgToCssScalingRatio();
+ return {
+ x: 1 / res.x,
+ y: 1 / res.y
+ };
};
- // Given an offset, return an object representing which panel it's in. The
- // `expand` argument tells it to expand the panel area by that many pixels.
- // It's possible for an offset to be within more than one panel, because
- // of the `expand` value. If that's the case, find the nearest panel.
- coordmap.getPanel = function (offset, expand) {
- expand = expand || 0;
+ // Given an offset in css pixels, return an object representing which panel
+ // it's in. The `expand` argument tells it to expand the panel area by that
+ // many pixels. It's possible for an offset to be within more than one
+ // panel, because of the `expand` value. If that's the case, find the
+ // nearest panel.
+ coordmap.getPanelCss = function (offset_css) {
+ var expand = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var x = offset.x;
- var y = offset.y;
+ var offset_img = coordmap.scaleCssToImg(offset_css);
+ var x = offset_img.x;
+ var y = offset_img.y;
+
+ // Convert expand from css pixels to img pixels
+ var cssToImgRatio = coordmap.cssToImgScalingRatio();
+ var expand_img = {
+ x: expand * cssToImgRatio.x,
+ y: expand * cssToImgRatio.y
+ };
var matches = []; // Panels that match
var dists = []; // Distance of offset to each matching panel
- var b;
- for (var i = 0; i < coordmap.length; i++) {
- b = coordmap[i].range;
+ var b = void 0;
+ for (var i = 0; i < coordmap.panels.length; i++) {
+ b = coordmap.panels[i].range;
- if (x <= b.right + expand && x >= b.left - expand && y <= b.bottom + expand && y >= b.top - expand) {
- matches.push(coordmap[i]);
+ if (x <= b.right + expand_img.x && x >= b.left - expand_img.x && y <= b.bottom + expand_img.y && y >= b.top - expand_img.y) {
+ matches.push(coordmap.panels[i]);
// Find distance from edges for x and y
var xdist = 0;
var ydist = 0;
- if (x > b.right && x <= b.right + expand) {
+ if (x > b.right && x <= b.right + expand_img.x) {
xdist = x - b.right;
- } else if (x < b.left && x >= b.left - expand) {
+ } else if (x < b.left && x >= b.left - expand_img.x) {
xdist = x - b.left;
}
- if (y > b.bottom && y <= b.bottom + expand) {
+ if (y > b.bottom && y <= b.bottom + expand_img.y) {
ydist = y - b.bottom;
- } else if (y < b.top && y >= b.top - expand) {
+ } else if (y < b.top && y >= b.top - expand_img.y) {
ydist = y - b.top;
}
@@ -2951,12 +3039,12 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
return null;
};
- // Is an offset in a panel? If supplied, `expand` tells us to expand the
- // panels by that many pixels in all directions.
- coordmap.isInPanel = function (offset, expand) {
- expand = expand || 0;
+ // Is an offset (in css pixels) in a panel? If supplied, `expand` tells us
+ // to expand the panels by that many pixels in all directions.
+ coordmap.isInPanelCss = function (offset_css) {
+ var expand = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- if (coordmap.getPanel(offset, expand)) return true;
+ if (coordmap.getPanelCss(offset_css, expand)) return true;
return false;
};
@@ -2973,19 +3061,22 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
return;
}
- var offset = coordmap.mouseOffset(e);
+ var offset_css = coordmap.mouseOffsetCss(e);
// If outside of plotting region
- if (!coordmap.isInPanel(offset)) {
+ if (!coordmap.isInPanelCss(offset_css)) {
if (nullOutside) {
exports.setInputValue(inputId, null);
return;
}
if (clip) return;
}
- if (clip && !coordmap.isInPanel(offset)) return;
+ if (clip && !coordmap.isInPanelCss(offset_css)) return;
- var panel = coordmap.getPanel(offset);
- var coords = panel.scaleInv(offset);
+ var panel = coordmap.getPanelCss(offset_css);
+
+ var coords = panel.scaleImgToData(coordmap.scaleCssToImg(offset_css));
+
+ coords.pixelratio = coordmap.cssToImgScalingRatio();
// Add the panel (facet) variables, if present
$.extend(coords, panel.panel_vars);
@@ -3003,6 +3094,41 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
};
};
+ // Given two sets of x/y coordinates, return an object representing the min
+ // and max x and y values. (This could be generalized to any number of
+ // points).
+ imageutils.findBox = function (offset1, offset2) {
+ return {
+ xmin: Math.min(offset1.x, offset2.x),
+ xmax: Math.max(offset1.x, offset2.x),
+ ymin: Math.min(offset1.y, offset2.y),
+ ymax: Math.max(offset1.y, offset2.y)
+ };
+ };
+
+ // Shift an array of values so that they are within a min and max. The vals
+ // will be shifted so that they maintain the same spacing internally. If the
+ // range in vals is larger than the range of min and max, the result might not
+ // make sense.
+ imageutils.shiftToRange = function (vals, min, max) {
+ if (!(vals instanceof Array)) vals = [vals];
+
+ var maxval = Math.max.apply(null, vals);
+ var minval = Math.min.apply(null, vals);
+ var shiftAmount = 0;
+ if (maxval > max) {
+ shiftAmount = max - maxval;
+ } else if (minval < min) {
+ shiftAmount = min - minval;
+ }
+
+ var newvals = [];
+ for (var i = 0; i < vals.length; i++) {
+ newvals[i] = vals[i] + shiftAmount;
+ }
+ return newvals;
+ };
+
// This object provides two public event listeners: mousedown, and
// dblclickIE8.
// We need to make sure that, when the image is listening for double-
@@ -3114,7 +3240,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
},
onResetImg: function onResetImg() {
clickInfoSender(null);
- }
+ },
+ onResize: null
};
};
@@ -3137,7 +3264,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
mouseout: mouseout,
onResetImg: function onResetImg() {
hoverInfoSender.immediateCall(null);
- }
+ },
+ onResize: null
};
};
@@ -3198,6 +3326,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
// Add the panel (facet) variables, if present
$.extend(coords, panel.panel_vars);
+ coords.pixelratio = coordmap.cssToImgScalingRatio();
+
// Add variable name mappings
coords.mapping = panel.mapping;
@@ -3234,31 +3364,32 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
// Listen for left mouse button only
if (e.which !== 1) return;
- var offset = coordmap.mouseOffset(e);
+ // In general, brush uses css pixels, and coordmap uses img pixels.
+ var offset_css = coordmap.mouseOffsetCss(e);
// Ignore mousedown events outside of plotting region, expanded by
// a number of pixels specified in expandPixels.
- if (opts.brushClip && !coordmap.isInPanel(offset, expandPixels)) return;
+ if (opts.brushClip && !coordmap.isInPanelCss(offset_css, expandPixels)) return;
brush.up({ x: NaN, y: NaN });
- brush.down(offset);
+ brush.down(offset_css);
- if (brush.isInResizeArea(offset)) {
- brush.startResizing(offset);
+ if (brush.isInResizeArea(offset_css)) {
+ brush.startResizing(offset_css);
// Attach the move and up handlers to the window so that they respond
// even when the mouse is moved outside of the image.
$(document).on('mousemove.image_brush', mousemoveResizing).on('mouseup.image_brush', mouseupResizing);
- } else if (brush.isInsideBrush(offset)) {
- brush.startDragging(offset);
+ } else if (brush.isInsideBrush(offset_css)) {
+ brush.startDragging(offset_css);
setCursorStyle('grabbing');
// Attach the move and up handlers to the window so that they respond
// even when the mouse is moved outside of the image.
$(document).on('mousemove.image_brush', mousemoveDragging).on('mouseup.image_brush', mouseupDragging);
} else {
- var panel = coordmap.getPanel(offset, expandPixels);
- brush.startBrushing(panel.clip(offset));
+ var panel = coordmap.getPanelCss(offset_css, expandPixels);
+ brush.startBrushing(panel.clipImg(coordmap.scaleCssToImg(offset_css)));
// Attach the move and up handlers to the window so that they respond
// even when the mouse is moved outside of the image.
@@ -3268,12 +3399,13 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
// This sets the cursor style when it's in the el
function mousemove(e) {
- var offset = coordmap.mouseOffset(e);
+ // In general, brush uses css pixels, and coordmap uses img pixels.
+ var offset_css = coordmap.mouseOffsetCss(e);
if (!(brush.isBrushing() || brush.isDragging() || brush.isResizing())) {
// Set the cursor depending on where it is
- if (brush.isInResizeArea(offset)) {
- var r = brush.whichResizeSides(offset);
+ if (brush.isInResizeArea(offset_css)) {
+ var r = brush.whichResizeSides(offset_css);
if (r.left && r.top || r.right && r.bottom) {
setCursorStyle('nwse-resize');
@@ -3284,9 +3416,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
} else if (r.top || r.bottom) {
setCursorStyle('ns-resize');
}
- } else if (brush.isInsideBrush(offset)) {
+ } else if (brush.isInsideBrush(offset_css)) {
setCursorStyle('grabbable');
- } else if (coordmap.isInPanel(offset, expandPixels)) {
+ } else if (coordmap.isInPanelCss(offset_css, expandPixels)) {
setCursorStyle('crosshair');
} else {
setCursorStyle(null);
@@ -3296,17 +3428,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
// mousemove handlers while brushing or dragging
function mousemoveBrushing(e) {
- brush.brushTo(coordmap.mouseOffset(e));
+ brush.brushTo(coordmap.mouseOffsetCss(e));
brushInfoSender.normalCall();
}
function mousemoveDragging(e) {
- brush.dragTo(coordmap.mouseOffset(e));
+ brush.dragTo(coordmap.mouseOffsetCss(e));
brushInfoSender.normalCall();
}
function mousemoveResizing(e) {
- brush.resizeTo(coordmap.mouseOffset(e));
+ brush.resizeTo(coordmap.mouseOffsetCss(e));
brushInfoSender.normalCall();
}
@@ -3317,7 +3449,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
$(document).off('mousemove.image_brush').off('mouseup.image_brush');
- brush.up(coordmap.mouseOffset(e));
+ brush.up(coordmap.mouseOffsetCss(e));
brush.stopBrushing();
setCursorStyle('crosshair');
@@ -3342,7 +3474,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
$(document).off('mousemove.image_brush').off('mouseup.image_brush');
- brush.up(coordmap.mouseOffset(e));
+ brush.up(coordmap.mouseOffsetCss(e));
brush.stopDragging();
setCursorStyle('grabbable');
@@ -3356,7 +3488,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
$(document).off('mousemove.image_brush').off('mouseup.image_brush');
- brush.up(coordmap.mouseOffset(e));
+ brush.up(coordmap.mouseOffsetCss(e));
brush.stopResizing();
if (brushInfoSender.isPending()) brushInfoSender.immediateCall();
@@ -3379,15 +3511,28 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
if (!opts.brushResetOnNew) {
if ($el.data("mostRecentBrush")) {
- brush.importOldBrush();
- brushInfoSender.immediateCall();
+ // Importing an old brush must happen after the image data has loaded
+ // and the DOM element has the updated size. If importOldBrush()
+ // is called before this happens, then the css-img coordinate mappings
+ // will give the wrong result, and the brush will have the wrong
+ // position.
+ $el.find("img").one("load.shiny-image-interaction", function () {
+ brush.importOldBrush();
+ brushInfoSender.immediateCall();
+ });
}
}
+ function onResize() {
+ brush.onResize();
+ brushInfoSender.immediateCall();
+ }
+
return {
mousedown: mousedown,
mousemove: mousemove,
- onResetImg: onResetImg
+ onResetImg: onResetImg,
+ onResize: onResize
};
};
@@ -3401,6 +3546,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var $div = null; // The div representing the brush
var state = {};
+
+ // Aliases for conciseness
+ var cssToImg = coordmap.scaleCssToImg;
+ var imgToCss = coordmap.scaleImgToCss;
+
reset();
function reset() {
@@ -3409,7 +3559,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
state.dragging = false;
state.resizing = false;
- // Offset of last mouse down and up events
+ // Offset of last mouse down and up events (in CSS pixels)
state.down = { x: NaN, y: NaN };
state.up = { x: NaN, y: NaN };
@@ -3421,10 +3571,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
bottom: false
};
- // Bounding rectangle of the brush, in pixel and data dimensions. We need to
- // record data dimensions along with pixel dimensions so that when a new
- // plot is sent, we can re-draw the brush div with the appropriate coords.
- state.boundsPx = {
+ // Bounding rectangle of the brush, in CSS pixel and data dimensions. We
+ // need to record data dimensions along with pixel dimensions so that when
+ // a new plot is sent, we can re-draw the brush div with the appropriate
+ // coords.
+ state.boundsCss = {
xmin: NaN,
xmax: NaN,
ymin: NaN,
@@ -3440,7 +3591,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
// Panel object that the brush is in
state.panel = null;
- // The bounds at the start of a drag/resize
+ // The bounds at the start of a drag/resize (in CSS pixels)
state.changeStartBounds = {
xmin: NaN,
xmax: NaN,
@@ -3463,40 +3614,15 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
if (!oldBoundsData || !oldPanel) return;
- // Compare two objects. This checks that objects a and b have the same est
- // of keys, and that each key has the same value. This function isn't
- // perfect, but it's good enough for comparing variable mappings, below.
- function isEquivalent(a, b) {
- if (a === undefined) {
- if (b === undefined) return true;else return false;
- }
- if (a === null) {
- if (b === null) return true;else return false;
- }
-
- var aProps = Object.getOwnPropertyNames(a);
- var bProps = Object.getOwnPropertyNames(b);
-
- if (aProps.length !== bProps.length) return false;
-
- for (var i = 0; i < aProps.length; i++) {
- var propName = aProps[i];
- if (a[propName] !== b[propName]) {
- return false;
- }
- }
- return true;
- }
-
// Find a panel that has matching vars; if none found, we can't restore.
// The oldPanel and new panel must match on their mapping vars, and the
// values.
- for (var i = 0; i < coordmap.length; i++) {
- var curPanel = coordmap[i];
+ for (var i = 0; i < coordmap.panels.length; i++) {
+ var curPanel = coordmap.panels[i];
- if (isEquivalent(oldPanel.mapping, curPanel.mapping) && isEquivalent(oldPanel.panel_vars, curPanel.panel_vars)) {
+ if (equal(oldPanel.mapping, curPanel.mapping) && equal(oldPanel.panel_vars, curPanel.panel_vars)) {
// We've found a matching panel
- state.panel = coordmap[i];
+ state.panel = coordmap.panels[i];
break;
}
}
@@ -3513,21 +3639,36 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
updateDiv();
}
+ // This will reposition the brush div when the image is resized, maintaining
+ // the same data coordinates. Note that the "resize" here refers to the
+ // wrapper div/img being resized; elsewhere, "resize" refers to the brush
+ // div being resized.
+ function onResize() {
+ var bounds_data = boundsData();
+ // Check to see if we have valid boundsData
+ for (var val in bounds_data) {
+ if (isnan(bounds_data[val])) return;
+ }
+
+ boundsData(bounds_data);
+ updateDiv();
+ }
+
// Return true if the offset is inside min/max coords
- function isInsideBrush(offset) {
- var bounds = state.boundsPx;
- return offset.x <= bounds.xmax && offset.x >= bounds.xmin && offset.y <= bounds.ymax && offset.y >= bounds.ymin;
+ function isInsideBrush(offset_css) {
+ var bounds = state.boundsCss;
+ return offset_css.x <= bounds.xmax && offset_css.x >= bounds.xmin && offset_css.y <= bounds.ymax && offset_css.y >= bounds.ymin;
}
// Return true if offset is inside a region to start a resize
- function isInResizeArea(offset) {
- var sides = whichResizeSides(offset);
+ function isInResizeArea(offset_css) {
+ var sides = whichResizeSides(offset_css);
return sides.left || sides.right || sides.top || sides.bottom;
}
// Return an object representing which resize region(s) the cursor is in.
- function whichResizeSides(offset) {
- var b = state.boundsPx;
+ function whichResizeSides(offset_css) {
+ var b = state.boundsCss;
// Bounds with expansion
var e = {
xmin: b.xmin - resizeExpand,
@@ -3542,34 +3683,36 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
bottom: false
};
- if ((opts.brushDirection === 'xy' || opts.brushDirection === 'x') && offset.y <= e.ymax && offset.y >= e.ymin) {
- if (offset.x < b.xmin && offset.x >= e.xmin) res.left = true;else if (offset.x > b.xmax && offset.x <= e.xmax) res.right = true;
+ if ((opts.brushDirection === 'xy' || opts.brushDirection === 'x') && offset_css.y <= e.ymax && offset_css.y >= e.ymin) {
+ if (offset_css.x < b.xmin && offset_css.x >= e.xmin) res.left = true;else if (offset_css.x > b.xmax && offset_css.x <= e.xmax) res.right = true;
}
- if ((opts.brushDirection === 'xy' || opts.brushDirection === 'y') && offset.x <= e.xmax && offset.x >= e.xmin) {
- if (offset.y < b.ymin && offset.y >= e.ymin) res.top = true;else if (offset.y > b.ymax && offset.y <= e.ymax) res.bottom = true;
+ if ((opts.brushDirection === 'xy' || opts.brushDirection === 'y') && offset_css.x <= e.xmax && offset_css.x >= e.xmin) {
+ if (offset_css.y < b.ymin && offset_css.y >= e.ymin) res.top = true;else if (offset_css.y > b.ymax && offset_css.y <= e.ymax) res.bottom = true;
}
return res;
}
- // Sets the bounds of the brush, given a box and optional panel. This
- // will fit the box bounds into the panel, so we don't brush outside of it.
- // This knows whether we're brushing in the x, y, or xy directions, and sets
- // bounds accordingly.
- // If no box is passed in, just return current bounds.
- function boundsPx(box) {
- if (box === undefined) return state.boundsPx;
+ // Sets the bounds of the brush (in CSS pixels), given a box and optional
+ // panel. This will fit the box bounds into the panel, so we don't brush
+ // outside of it. This knows whether we're brushing in the x, y, or xy
+ // directions, and sets bounds accordingly. If no box is passed in, just
+ // return current bounds.
+ function boundsCss(box_css) {
+ if (box_css === undefined) {
+ return $.extend({}, state.boundsCss);
+ }
- var min = { x: box.xmin, y: box.ymin };
- var max = { x: box.xmax, y: box.ymax };
+ var min_css = { x: box_css.xmin, y: box_css.ymin };
+ var max_css = { x: box_css.xmax, y: box_css.ymax };
var panel = state.panel;
- var panelBounds = panel.range;
+ var panelBounds_img = panel.range;
if (opts.brushClip) {
- min = panel.clip(min);
- max = panel.clip(max);
+ min_css = imgToCss(panel.clipImg(cssToImg(min_css)));
+ max_css = imgToCss(panel.clipImg(cssToImg(max_css)));
}
if (opts.brushDirection === 'xy') {
@@ -3577,26 +3720,26 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
} else if (opts.brushDirection === 'x') {
// Extend top and bottom of plotting area
- min.y = panelBounds.top;
- max.y = panelBounds.bottom;
+ min_css.y = imgToCss({ y: panelBounds_img.top }).y;
+ max_css.y = imgToCss({ y: panelBounds_img.bottom }).y;
} else if (opts.brushDirection === 'y') {
- min.x = panelBounds.left;
- max.x = panelBounds.right;
+ min_css.x = imgToCss({ x: panelBounds_img.left }).x;
+ max_css.x = imgToCss({ x: panelBounds_img.right }).x;
}
- state.boundsPx = {
- xmin: min.x,
- xmax: max.x,
- ymin: min.y,
- ymax: max.y
+ state.boundsCss = {
+ xmin: min_css.x,
+ xmax: max_css.x,
+ ymin: min_css.y,
+ ymax: max_css.y
};
// Positions in data space
- var minData = state.panel.scaleInv(min);
- var maxData = state.panel.scaleInv(max);
+ var min_data = state.panel.scaleImgToData(cssToImg(min_css));
+ var max_data = state.panel.scaleImgToData(cssToImg(max_css));
// For reversed scales, the min and max can be reversed, so use findBox
// to ensure correct order.
- state.boundsData = coordmap.findBox(minData, maxData);
+ state.boundsData = imageutils.findBox(min_data, max_data);
// Round to 14 significant digits to avoid spurious changes in FP values
// (#1634).
state.boundsData = mapValues(state.boundsData, function (val) {
@@ -3612,24 +3755,20 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
}
// Get or set the bounds of the brush using coordinates in the data space.
- function boundsData(box) {
- if (box === undefined) {
- return state.boundsData;
+ function boundsData(box_data) {
+ if (box_data === undefined) {
+ return $.extend({}, state.boundsData);
}
- var min = { x: box.xmin, y: box.ymin };
- var max = { x: box.xmax, y: box.ymax };
-
- var minPx = state.panel.scale(min);
- var maxPx = state.panel.scale(max);
+ var box_css = imgToCss(state.panel.scaleDataToImg(box_data));
// The scaling function can reverse the direction of the axes, so we need to
// find the min and max again.
- boundsPx({
- xmin: Math.min(minPx.x, maxPx.x),
- xmax: Math.max(minPx.x, maxPx.x),
- ymin: Math.min(minPx.y, maxPx.y),
- ymax: Math.max(minPx.y, maxPx.y)
+ boundsCss({
+ xmin: Math.min(box_css.xmin, box_css.xmax),
+ xmax: Math.max(box_css.xmin, box_css.xmax),
+ ymin: Math.min(box_css.ymin, box_css.ymax),
+ ymax: Math.max(box_css.ymin, box_css.ymax)
});
return undefined;
}
@@ -3675,25 +3814,26 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
function updateDiv() {
// Need parent offset relative to page to calculate mouse offset
// relative to page.
- var imgOffset = $el.offset();
- var b = state.boundsPx;
+ var img_offset_css = findOrigin($el.find("img"));
+ var b = state.boundsCss;
+
$div.offset({
- top: imgOffset.top + b.ymin,
- left: imgOffset.left + b.xmin
+ top: img_offset_css.y + b.ymin,
+ left: img_offset_css.x + b.xmin
}).outerWidth(b.xmax - b.xmin + 1).outerHeight(b.ymax - b.ymin + 1);
}
- function down(offset) {
- if (offset === undefined) return state.down;
+ function down(offset_css) {
+ if (offset_css === undefined) return state.down;
- state.down = offset;
+ state.down = offset_css;
return undefined;
}
- function up(offset) {
- if (offset === undefined) return state.up;
+ function up(offset_css) {
+ if (offset_css === undefined) return state.up;
- state.up = offset;
+ state.up = offset_css;
return undefined;
}
@@ -3704,23 +3844,22 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
function startBrushing() {
state.brushing = true;
addDiv();
- state.panel = coordmap.getPanel(state.down, expandPixels);
+ state.panel = coordmap.getPanelCss(state.down, expandPixels);
- boundsPx(coordmap.findBox(state.down, state.down));
+ boundsCss(imageutils.findBox(state.down, state.down));
updateDiv();
}
- function brushTo(offset) {
- boundsPx(coordmap.findBox(state.down, offset));
+ function brushTo(offset_css) {
+ boundsCss(imageutils.findBox(state.down, offset_css));
$div.show();
updateDiv();
}
function stopBrushing() {
state.brushing = false;
-
// Save the final bounding box of the brush
- boundsPx(coordmap.findBox(state.down, state.up));
+ boundsCss(imageutils.findBox(state.down, state.up));
}
function isDragging() {
@@ -3729,17 +3868,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
function startDragging() {
state.dragging = true;
- state.changeStartBounds = $.extend({}, state.boundsPx);
+ state.changeStartBounds = $.extend({}, state.boundsCss);
}
- function dragTo(offset) {
+ function dragTo(offset_css) {
// How far the brush was dragged
- var dx = offset.x - state.down.x;
- var dy = offset.y - state.down.y;
+ var dx = offset_css.x - state.down.x;
+ var dy = offset_css.y - state.down.y;
// Calculate what new positions would be, before clipping.
var start = state.changeStartBounds;
- var newBounds = {
+ var newBounds_css = {
xmin: start.xmin + dx,
xmax: start.xmax + dx,
ymin: start.ymin + dy,
@@ -3748,25 +3887,26 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
// Clip to the plotting area
if (opts.brushClip) {
- var panelBounds = state.panel.range;
+ var panelBounds_img = state.panel.range;
+ var newBounds_img = cssToImg(newBounds_css);
// Convert to format for shiftToRange
- var xvals = [newBounds.xmin, newBounds.xmax];
- var yvals = [newBounds.ymin, newBounds.ymax];
+ var xvals_img = [newBounds_img.xmin, newBounds_img.xmax];
+ var yvals_img = [newBounds_img.ymin, newBounds_img.ymax];
- xvals = coordmap.shiftToRange(xvals, panelBounds.left, panelBounds.right);
- yvals = coordmap.shiftToRange(yvals, panelBounds.top, panelBounds.bottom);
+ xvals_img = imageutils.shiftToRange(xvals_img, panelBounds_img.left, panelBounds_img.right);
+ yvals_img = imageutils.shiftToRange(yvals_img, panelBounds_img.top, panelBounds_img.bottom);
// Convert back to bounds format
- newBounds = {
- xmin: xvals[0],
- xmax: xvals[1],
- ymin: yvals[0],
- ymax: yvals[1]
- };
+ newBounds_css = imgToCss({
+ xmin: xvals_img[0],
+ xmax: xvals_img[1],
+ ymin: yvals_img[0],
+ ymax: yvals_img[1]
+ });
}
- boundsPx(newBounds);
+ boundsCss(newBounds_css);
updateDiv();
}
@@ -3780,32 +3920,40 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
function startResizing() {
state.resizing = true;
- state.changeStartBounds = $.extend({}, state.boundsPx);
+ state.changeStartBounds = $.extend({}, state.boundsCss);
state.resizeSides = whichResizeSides(state.down);
}
- function resizeTo(offset) {
+ function resizeTo(offset_css) {
// How far the brush was dragged
- var dx = offset.x - state.down.x;
- var dy = offset.y - state.down.y;
+ var d_css = {
+ x: offset_css.x - state.down.x,
+ y: offset_css.y - state.down.y
+ };
+
+ var d_img = cssToImg(d_css);
// Calculate what new positions would be, before clipping.
- var b = $.extend({}, state.changeStartBounds);
- var panelBounds = state.panel.range;
+ var b_img = cssToImg(state.changeStartBounds);
+ var panelBounds_img = state.panel.range;
if (state.resizeSides.left) {
- b.xmin = coordmap.shiftToRange([b.xmin + dx], panelBounds.left, b.xmax)[0];
+ var xmin_img = imageutils.shiftToRange(b_img.xmin + d_img.x, panelBounds_img.left, b_img.xmax)[0];
+ b_img.xmin = xmin_img;
} else if (state.resizeSides.right) {
- b.xmax = coordmap.shiftToRange([b.xmax + dx], b.xmin, panelBounds.right)[0];
+ var xmax_img = imageutils.shiftToRange(b_img.xmax + d_img.x, b_img.xmin, panelBounds_img.right)[0];
+ b_img.xmax = xmax_img;
}
if (state.resizeSides.top) {
- b.ymin = coordmap.shiftToRange([b.ymin + dy], panelBounds.top, b.ymax)[0];
+ var ymin_img = imageutils.shiftToRange(b_img.ymin + d_img.y, panelBounds_img.top, b_img.ymax)[0];
+ b_img.ymin = ymin_img;
} else if (state.resizeSides.bottom) {
- b.ymax = coordmap.shiftToRange([b.ymax + dy], b.ymin, panelBounds.bottom)[0];
+ var ymax_img = imageutils.shiftToRange(b_img.ymax + d_img.y, b_img.ymin, panelBounds_img.bottom)[0];
+ b_img.ymax = ymax_img;
}
- boundsPx(b);
+ boundsCss(imgToCss(b_img));
updateDiv();
}
@@ -3821,7 +3969,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
isInResizeArea: isInResizeArea,
whichResizeSides: whichResizeSides,
- boundsPx: boundsPx,
+ onResize: onResize, // A callback when the wrapper div or img is resized.
+
+ boundsCss: boundsCss,
boundsData: boundsData,
getPanel: getPanel,
@@ -3852,6 +4002,62 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
});
};
+ // -----------------------------------------------------------------------
+ // Utility functions for finding dimensions and locations of DOM elements
+ // -----------------------------------------------------------------------
+
+ // Returns the ratio that an element has been scaled (for example, by CSS
+ // transforms) in the x and y directions.
+ function findScalingRatio($el) {
+ var boundingRect = $el[0].getBoundingClientRect();
+ return {
+ x: boundingRect.width / $el.outerWidth(),
+ y: boundingRect.height / $el.outerHeight()
+ };
+ }
+
+ function findOrigin($el) {
+ var offset = $el.offset();
+ var scaling_ratio = findScalingRatio($el);
+
+ // Find the size of the padding and border, for the top and left. This is
+ // before any transforms.
+ var paddingBorder = {
+ left: parseInt($el.css("border-left-width")) + parseInt($el.css("padding-left")),
+ top: parseInt($el.css("border-top-width")) + parseInt($el.css("padding-top"))
+ };
+
+ // offset() returns the upper left corner of the element relative to the
+ // page, but it includes padding and border. Here we find the upper left
+ // of the element, not including padding and border.
+ return {
+ x: offset.left + scaling_ratio.x * paddingBorder.left,
+ y: offset.top + scaling_ratio.y * paddingBorder.top
+ };
+ }
+
+ // Find the dimensions of a tag, after transforms, and without padding and
+ // border.
+ function findDims($el) {
+ // If there's any padding/border, we need to find the ratio of the actual
+ // element content compared to the element plus padding and border.
+ var content_ratio = {
+ x: $el.width() / $el.outerWidth(),
+ y: $el.height() / $el.outerHeight()
+ };
+
+ // Get the dimensions of the element _after_ any CSS transforms. This
+ // includes the padding and border.
+ var bounding_rect = $el[0].getBoundingClientRect();
+
+ // Dimensions of the element after any CSS transforms, and without
+ // padding/border.
+ return {
+ x: content_ratio.x * bounding_rect.width,
+ y: content_ratio.y * bounding_rect.height
+ };
+ }
+
//---------------------------------------------------------------------
// Source file: ../srcjs/output_binding_html.js
@@ -4431,6 +4637,33 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
if (slider.$cache && slider.$cache.input) slider.$cache.input.trigger('change');else console.log("Couldn't force ion slider to update");
}
+ function getTypePrettifyer(dataType, timeFormat, timezone) {
+ var timeFormatter;
+ var prettify;
+ if (dataType === 'date') {
+ timeFormatter = strftime.utc();
+ prettify = function prettify(num) {
+ return timeFormatter(timeFormat, new Date(num));
+ };
+ } else if (dataType === 'datetime') {
+ if (timezone) timeFormatter = strftime.timezone(timezone);else timeFormatter = strftime;
+
+ prettify = function prettify(num) {
+ return timeFormatter(timeFormat, new Date(num));
+ };
+ } else {
+ // The default prettify function for ion.rangeSlider adds thousands
+ // separators after the decimal mark, so we have our own version here.
+ // (#1958)
+ prettify = function prettify(num) {
+ // When executed, `this` will refer to the `IonRangeSlider.options`
+ // object.
+ return formatNumber(num, this.prettify_separator);
+ };
+ }
+ return prettify;
+ }
+
var sliderInputBinding = {};
$.extend(sliderInputBinding, textInputBinding, {
find: function find(scope) {
@@ -4509,12 +4742,30 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
msg.from = data.value;
}
}
- if (data.hasOwnProperty('min')) msg.min = data.min;
- if (data.hasOwnProperty('max')) msg.max = data.max;
- if (data.hasOwnProperty('step')) msg.step = data.step;
+ var sliderFeatures = ['min', 'max', 'step'];
+ for (var i = 0; i < sliderFeatures.length; i++) {
+ var feats = sliderFeatures[i];
+ if (data.hasOwnProperty(feats)) {
+ msg[feats] = data[feats];
+ }
+ }
if (data.hasOwnProperty('label')) $el.parent().find('label[for="' + $escape(el.id) + '"]').text(data.label);
+ var domElements = ['data-type', 'time-format', 'timezone'];
+ for (var i = 0; i < domElements.length; i++) {
+ var elem = domElements[i];
+ if (data.hasOwnProperty(elem)) {
+ $el.data(elem, data[elem]);
+ }
+ }
+
+ var dataType = $el.data('data-type');
+ var timeFormat = $el.data('time-format');
+ var timezone = $el.data('timezone');
+
+ msg.prettify = getTypePrettifyer(dataType, timeFormat, timezone);
+
$el.data('immediate', true);
try {
slider.update(msg);
@@ -4535,31 +4786,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var $el = $(el);
var dataType = $el.data('data-type');
var timeFormat = $el.data('time-format');
- var timeFormatter;
+ var timezone = $el.data('timezone');
- // Set up formatting functions
- if (dataType === 'date') {
- timeFormatter = strftime.utc();
- opts.prettify = function (num) {
- return timeFormatter(timeFormat, new Date(num));
- };
- } else if (dataType === 'datetime') {
- var timezone = $el.data('timezone');
- if (timezone) timeFormatter = strftime.timezone(timezone);else timeFormatter = strftime;
-
- opts.prettify = function (num) {
- return timeFormatter(timeFormat, new Date(num));
- };
- } else {
- // The default prettify function for ion.rangeSlider adds thousands
- // separators after the decimal mark, so we have our own version here.
- // (#1958)
- opts.prettify = function (num) {
- // When executed, `this` will refer to the `IonRangeSlider.options`
- // object.
- return formatNumber(num, this.prettify_separator);
- };
- }
+ opts.prettify = getTypePrettifyer(dataType, timeFormat, timezone);
$el.ionRangeSlider(opts);
},
@@ -5025,6 +5254,18 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
find: function find(scope) {
return $(scope).find('select');
},
+ getType: function getType(el) {
+ var $el = $(el);
+ if (!$el.hasClass("symbol")) {
+ // default character type
+ return null;
+ }
+ if ($el.attr("multiple") === "multiple") {
+ return 'shiny.symbolList';
+ } else {
+ return 'shiny.symbol';
+ }
+ },
getId: function getId(el) {
return InputBinding.prototype.getId.call(this, el) || el.name;
},
@@ -5076,8 +5317,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
if (data.hasOwnProperty('url')) {
selectize = this._selectize(el);
selectize.clearOptions();
- var thiz = this,
- loaded = false;
+ var loaded = false;
selectize.settings.load = function (query, callback) {
var settings = selectize.settings;
$.ajax({
@@ -5094,8 +5334,19 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
callback();
},
success: function success(res) {
+ // res = [{label: '1', value: '1', group: '1'}, ...]
+ // success is called after options are added, but
+ // groups need to be added manually below
+ $.each(res, function (index, elem) {
+ selectize.addOptionGroup(elem.group, { group: elem.group });
+ });
callback(res);
- if (!loaded && data.hasOwnProperty('value')) thiz.setValue(el, data.value);
+ if (!loaded && data.hasOwnProperty('value')) {
+ selectize.setValue(data.value);
+ } else if (settings.maxItems === 1) {
+ // first item selected by default only for single-select
+ selectize.setValue(res[0].value);
+ }
loaded = true;
}
});
@@ -5131,7 +5382,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var options = $.extend({
labelField: 'label',
valueField: 'value',
- searchField: ['label']
+ searchField: ['label'],
+ optgroupField: 'group',
+ optgroupLabelField: 'group',
+ optgroupValueField: 'group'
}, JSON.parse(config.html()));
// selectize created from selectInput()
if (typeof config.data('nonempty') !== 'undefined') {
diff --git a/inst/www/shared/shiny.js.map b/inst/www/shared/shiny.js.map
index dc137b7c0..6542a6c68 100644
--- a/inst/www/shared/shiny.js.map
+++ b/inst/www/shared/shiny.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../srcjs/_start.js","../../srcjs/utils.js","../../srcjs/browser.js","../../srcjs/input_rate.js","../../srcjs/shinyapp.js","../../srcjs/notifications.js","../../srcjs/modal.js","../../srcjs/file_processor.js","../../srcjs/binding_registry.js","../../srcjs/output_binding.js","../../srcjs/output_binding_text.js","../../srcjs/output_binding_image.js","../../srcjs/output_binding_html.js","../../srcjs/output_binding_downloadlink.js","../../srcjs/output_binding_datatable.js","../../srcjs/output_binding_adapter.js","../../srcjs/input_binding.js","../../srcjs/input_binding_text.js","../../srcjs/input_binding_textarea.js","../../srcjs/input_binding_password.js","../../srcjs/input_binding_number.js","../../srcjs/input_binding_checkbox.js","../../srcjs/input_binding_slider.js","../../srcjs/input_binding_date.js","../../srcjs/input_binding_daterange.js","../../srcjs/input_binding_select.js","../../srcjs/input_binding_radio.js","../../srcjs/input_binding_checkboxgroup.js","../../srcjs/input_binding_actionbutton.js","../../srcjs/input_binding_tabinput.js","../../srcjs/input_binding_fileinput.js","../../srcjs/init_shiny.js","../../srcjs/reactlog.js","../../srcjs/_end.js"],"names":[],"mappings":"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","file":"shiny.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n(function() {\n var $ = jQuery;\n\n var exports = window.Shiny = window.Shiny || {};\n\n exports.version = \"{{ VERSION }}\"; // Version number inserted by Grunt\n\n var origPushState = window.history.pushState;\n window.history.pushState = function() {\n var result = origPushState.apply(this, arguments);\n $(document).trigger(\"pushstate\");\n return result;\n };\n\n $(document).on('submit', 'form:not([action])', function(e) {\n e.preventDefault();\n });\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/utils.js\n\nfunction escapeHTML(str) {\n var escaped = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"/\": \"/\"\n };\n\n return str.replace(/[&<>'\"\\/]/g, function(m) {\n return escaped[m];\n });\n}\n\nfunction randomId() {\n return Math.floor(0x100000000 + (Math.random() * 0xF00000000)).toString(16);\n}\n\nfunction strToBool(str) {\n if (!str || !str.toLowerCase)\n return undefined;\n\n switch(str.toLowerCase()) {\n case 'true':\n return true;\n case 'false':\n return false;\n default:\n return undefined;\n }\n}\n\n// A wrapper for getComputedStyle that is compatible with older browsers.\n// This is significantly faster than jQuery's .css() function.\nfunction getStyle(el, styleProp) {\n var x;\n if (el.currentStyle)\n x = el.currentStyle[styleProp];\n else if (window.getComputedStyle) {\n // getComputedStyle can return null when we're inside a hidden iframe on\n // Firefox; don't attempt to retrieve style props in this case.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n var style = document.defaultView.getComputedStyle(el, null);\n if (style)\n x = style.getPropertyValue(styleProp);\n }\n return x;\n}\n\n// Convert a number to a string with leading zeros\nfunction padZeros(n, digits) {\n var str = n.toString();\n while (str.length < digits)\n str = \"0\" + str;\n return str;\n}\n\n// Round to a specified number of significant digits.\nfunction roundSignif(x, digits = 1) {\n if (digits < 1)\n throw \"Significant digits must be at least 1.\";\n\n // This converts to a string and back to a number, which is inelegant, but\n // is less prone to FP rounding error than an alternate method which used\n // Math.round().\n return parseFloat(x.toPrecision(digits));\n}\n\n// Take a string with format \"YYYY-MM-DD\" and return a Date object.\n// IE8 and QTWebKit don't support YYYY-MM-DD, but they support YYYY/MM/DD\nfunction parseDate(dateString) {\n var date = new Date(dateString);\n if (isNaN(date))\n date = new Date(dateString.replace(/-/g, \"/\"));\n return date;\n}\n\n// Given a Date object, return a string in yyyy-mm-dd format, using the\n// UTC date. This may be a day off from the date in the local time zone.\nfunction formatDateUTC(date) {\n if (date instanceof Date) {\n return date.getUTCFullYear() + '-' +\n padZeros(date.getUTCMonth()+1, 2) + '-' +\n padZeros(date.getUTCDate(), 2);\n\n } else {\n return null;\n }\n}\n\n\n// Given an element and a function(width, height), returns a function(). When\n// the output function is called, it calls the input function with the offset\n// width and height of the input element--but only if the size of the element\n// is non-zero and the size is different than the last time the output\n// function was called.\n//\n// Basically we are trying to filter out extraneous calls to func, so that\n// when the window size changes or whatever, we don't run resize logic for\n// elements that haven't actually changed size or aren't visible anyway.\nfunction makeResizeFilter(el, func) {\n var lastSize = {};\n return function() {\n var size = { w: el.offsetWidth, h: el.offsetHeight };\n if (size.w === 0 && size.h === 0)\n return;\n if (size.w === lastSize.w && size.h === lastSize.h)\n return;\n lastSize = size;\n func(size.w, size.h);\n };\n}\n\nvar _BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||\n window.MozBlobBuilder || window.MSBlobBuilder;\n\nfunction makeBlob(parts) {\n\n // Browser compatibility is a mess right now. The code as written works in\n // a variety of modern browsers, but sadly gives a deprecation warning\n // message on the console in current versions (as of this writing) of\n // Chrome.\n\n // Safari 6.0 (8536.25) on Mac OS X 10.8.1:\n // Has Blob constructor but it doesn't work with ArrayBufferView args\n\n // Google Chrome 21.0.1180.81 on Xubuntu 12.04:\n // Has Blob constructor, accepts ArrayBufferView args, accepts ArrayBuffer\n // but with a deprecation warning message\n\n // Firefox 15.0 on Xubuntu 12.04:\n // Has Blob constructor, accepts both ArrayBuffer and ArrayBufferView args\n\n // Chromium 18.0.1025.168 (Developer Build 134367 Linux) on Xubuntu 12.04:\n // No Blob constructor. Has WebKitBlobBuilder.\n\n try {\n return new Blob(parts);\n }\n catch (e) {\n var blobBuilder = new _BlobBuilder();\n $.each(parts, function(i, part) {\n blobBuilder.append(part);\n });\n return blobBuilder.getBlob();\n }\n}\n\nfunction pixelRatio() {\n if (window.devicePixelRatio) {\n return window.devicePixelRatio;\n } else {\n return 1;\n }\n}\n\n// Takes a string expression and returns a function that takes an argument.\n//\n// When the function is executed, it will evaluate that expression using\n// \"with\" on the argument value, and return the result.\nfunction scopeExprToFunc(expr) {\n /*jshint evil: true */\n var expr_escaped = expr\n .replace(/[\\\\\"']/g, '\\\\$&')\n .replace(/\\u0000/g, '\\\\0')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n // \\b has a special meaning; need [\\b] to match backspace char.\n .replace(/[\\b]/g, '\\\\b');\n\n try {\n var func = new Function(\n `with (this) {\n try {\n return (${expr});\n } catch (e) {\n console.error('Error evaluating expression: ${expr_escaped}');\n throw e;\n }\n }`\n );\n } catch (e) {\n console.error(\"Error parsing expression: \" + expr);\n throw e;\n }\n\n\n return function(scope) {\n return func.call(scope);\n };\n}\n\nfunction asArray(value) {\n if (value === null || value === undefined)\n return [];\n if ($.isArray(value))\n return value;\n return [value];\n}\n\n// We need a stable sorting algorithm for ordering\n// bindings by priority and insertion order.\nfunction mergeSort(list, sortfunc) {\n function merge(sortfunc, a, b) {\n var ia = 0;\n var ib = 0;\n var sorted = [];\n while (ia < a.length && ib < b.length) {\n if (sortfunc(a[ia], b[ib]) <= 0) {\n sorted.push(a[ia++]);\n }\n else {\n sorted.push(b[ib++]);\n }\n }\n while (ia < a.length)\n sorted.push(a[ia++]);\n while (ib < b.length)\n sorted.push(b[ib++]);\n return sorted;\n }\n\n // Don't mutate list argument\n list = list.slice(0);\n\n for (var chunkSize = 1; chunkSize < list.length; chunkSize *= 2) {\n for (var i = 0; i < list.length; i += chunkSize * 2) {\n var listA = list.slice(i, i + chunkSize);\n var listB = list.slice(i + chunkSize, i + chunkSize * 2);\n var merged = merge(sortfunc, listA, listB);\n var args = [i, merged.length];\n Array.prototype.push.apply(args, merged);\n Array.prototype.splice.apply(list, args);\n }\n }\n\n return list;\n}\n\n// Escape jQuery selector metacharacters: !\"#$%&'()*+,./:;<=>?@[\\]^`{|}~\nvar $escape = exports.$escape = function(val) {\n return val.replace(/([!\"#$%&'()*+,.\\/:;<=>?@\\[\\\\\\]^`{|}~])/g, '\\\\$1');\n};\n\n// Maps a function over an object, preserving keys. Like the mapValues\n// function from lodash.\nfunction mapValues(obj, f) {\n const newObj = {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key))\n newObj[key] = f(obj[key]);\n }\n return newObj;\n}\n\n// Binary equality function used by the equal function.\nfunction _equal(x, y) {\n if ($.type(x) === \"object\" && $.type(y) === \"object\") {\n if (Object.keys(x).length !== Object.keys(y).length) return false;\n for (let prop in x)\n if (!y.hasOwnProperty(prop) || !_equal(x[prop], y[prop]))\n return false;\n return true;\n } else if ($.type(x) === \"array\" && $.type(y) === \"array\") {\n if (x.length !== y.length) return false;\n for (let i = 0; i < x.length; i++)\n if (!_equal(x[i], y[i])) return false;\n return true;\n } else {\n return (x === y);\n }\n}\n\n// Structural or \"deep\" equality predicate. Tests two or more arguments for\n// equality, traversing arrays and objects (as determined by $.type) as\n// necessary.\n//\n// Objects other than objects and arrays are tested for equality using ===.\nfunction equal(...args) {\n if (args.length < 2) throw new Error(\"equal requires at least two arguments.\");\n for (let i = 0; i < args.length-1; i++) {\n if (!_equal(args[i], args[i+1]))\n return false;\n }\n return true;\n};\n\n// Compare version strings like \"1.0.1\", \"1.4-2\". `op` must be a string like\n// \"==\" or \"<\".\nexports.compareVersion = function(a, op, b) {\n function versionParts(ver) {\n return (ver + \"\")\n .replace(/-/, \".\")\n .replace(/(\\.0)+[^\\.]*$/, \"\")\n .split(\".\");\n }\n\n function cmpVersion(a, b) {\n a = versionParts(a);\n b = versionParts(b);\n var len = Math.min(a.length, b.length);\n var cmp;\n\n for(var i=0; i=\") return (diff >= 0);\n else if (op === \">\") return (diff > 0);\n else if (op === \"<=\") return (diff <= 0);\n else if (op === \"<\") return (diff < 0);\n else throw `Unknown operator: ${op}`;\n};\n\n\n// multimethod: Creates functions — \"multimethods\" — that are polymorphic on one\n// or more of their arguments.\n//\n// Multimethods can take any number of arguments. Arguments are passed to an\n// applicable function or \"method\", returning its result. By default, if no\n// method was applicable, an exception is thrown.\n//\n// Methods are searched in the order that they were added, and the first\n// applicable method found is the one used.\n//\n// A method is applicable when the \"dispatch value\" associated with it\n// corresponds to the value returned by the dispatch function. The dispatch\n// function defaults to the value of the first argument passed to the\n// multimethod.\n//\n// The correspondence between the value returned by the dispatch function and\n// any method's dispatch value is determined by the test function, which is\n// user-definable and defaults to `equal` or deep equality.\n//\n// # Chainable Functions\n//\n// The function returned by `multimethod()` exposes functions as properties.\n// These functions generally return the multimethod, and so can be chained.\n//\n// - dispatch([function newDispatch]): Sets the dispatch function. The dispatch\n// function can take any number of arguments, but must return a dispatch\n// value. The default dispatch function returns the first argument passed to\n// the multimethod.\n//\n// - test([function newTest]): Sets the test function. The test function takes\n// two arguments: the dispatch value produced by the dispatch function, and\n// the dispatch value associated with some method. It must return a boolean\n// indicating whether or not to select the method. The default test function\n// is `equal`.\n//\n// - when(object dispatchVal, function method): Adds a new dispatch value/method\n// combination.\n//\n// - whenAny(array