Log message:
(www/R-shiny) Updated 1.7.1 to 1.7.4
# shiny 1.7.4
## Full changelog
### Breaking changes
* Closed #3719: Output container sizes, which are available via
[`session$clientData` and
`getCurrentOutputInfo()`](https://shiny.rstudio.com/articles/client-data.html),
no longer round to the nearest pixel (i.e., they are now more exact,
possibly fractional values). (#3720)
* Closed #3704, #3735, and #3740: `renderPlot()` no longer generates
an error (or segfault) when it executes before the output is
visible. Instead, it'll now use the graphics device's default size
for it's initial size. Relatedly, `plotPNG()` now ignores `NULL`
values for `width`/`height` (and uses the device's default
`width`/`height` instead). (#3739)
### New features and improvements
* `plotOutput()`, `imageOutput()`, and `uiOutput()` gain a `fill`
argument. If `TRUE` (the default for `plotOutput()`), the output
container is allowed to grow/shrink to fit a fill container (created
via `htmltools::bindFillRole()`) with an opinionated height. This
means `plotOutput()` will grow/shrink by default [inside of
\
`bslib::card_body_fill()`](https://rstudio.github.io/bslib/articles/cards.html#responsive-sizing),
but `imageOutput()` and `uiOutput()` will have to opt-in to similar
behavior with `fill = TRUE`. (#3715)
* Closed #3687: Updated jQuery-UI to v1.13.2. (#3697)
* Internal: Added clearer and strict TypeScript type definitions (#3644)
# shiny 1.7.3
### Bug fixes
* Shiny 1.7.0 changed the `icon(lib="fontawesome")` implementation
from a bundled copy of fontawesome, to the {fontawesome}
package. This led to issue #3688, where icons that were previously
working, were now breaking. That's because {fontawesome} 0.3.0 and
earlier did not have support for icon names used in Font Awesome 5
and earlier, only the newest icon names used in Font Awesome 6. Now,
{fontawesome} 0.4.0 has restored support for those older icon names,
and Shiny 1.7.2.1 has updated its {fontawesome} requirement to
>=0.4.0.
# shiny 1.7.2
## Full changelog
### Breaking changes
* Closed #3626: `renderPlot()` (and `plotPNG()`) now uses
`ragg::agg_png()` by default when the [`{ragg}`
package](https://github.com/r-lib/ragg) is installed. To restore the
previous behavior, set `options(shiny.useragg = FALSE)`. (#3654)
### New features and improvements
* Closed #1545: `insertUI()` now executes `<script>` tags. (#3630)
* `fileInput()` can set the `capture` attribute to facilitates user
access to a device's media capture mechanism, such as a camera, or
microphone, from within a file upload control ([W3C HTML Media
Capture](https://www.w3.org/TR/html-media-capture/)). (Thanks to
khaled-alshamaa, #3481)
* Closed tidyverse/dplyr#5552: Compatibility of dplyr 1.0 (and rlang
chained errors in general) with `req()`, `validate()`, and friends.
* Closed tidyverse/dplyr#6154: Values from an `actionButton()` had S3
classes in the incorrect order.
* Closed #3346: Default for `ref` input in `runGithub()` changed from
`"master"` to `"HEAD"`. (#3564)
* Closed #3619: In R 4.2, `splitLayout()` no longer raises warnings
about incorrect length in an `if` statement. (Thanks to @dmenne,
#3625)
### Bug fixes
* Closed #3250:`{rlang}`/`{tidyeval}` conditions (i.e., warnings and
errors) are no longer filtered from stack traces. (#3602)
* Closed #3581: Errors in throttled/debounced reactive expressions no
longer cause the session to exit. (#3624)
* Closed #3657: `throttle.ts` and the `Throttler` typescript objects
it provides now function as intended. (Thanks gto @dvg-p4, #3659)
* The auto-reload feature (`options(shiny.autoreload=TRUE)`) was not
being activated by `devmode(TRUE)`, despite a console message
asserting that it was. (#3620)
* Closed #2297: If an error occurred in parsing a value in a bookmark
query string, an error would be thrown and nothing would be
restored. Now a message is displayed and that value is
ignored. (Thanks to @daattali, #3385)
* Restored the previous behavior of automatically guessing the
`Content-Type` header for `downloadHandler` functions when no
explicit `contentType` argument is supplied. (#3393)
* Previously, updating an input value without a corresponding Input
binding element did not trigger a JavaScript `shiny:inputchanged`
event. Now, if no Input binding element is found, the
`shiny:inputchanged` event is triggered on
`window.document`. (#3584)
* Closed #2955: Input and output bindings previously attempted to use
`el['data-input-id']`, but that never worked. They now use
`el.getAttribute('data-input-id')` instead. (#3538)
### Minor improvements
* When taking a test snapshot, the sort order of the json keys of the
`input`, `output`, and `export` fields is currently sorted using the
locale of the machine. This can lead to inconsistent test snapshot
results. To opt-in to a consistent ordering of snapshot fields with
`{shinytest}`, please set the global option
`options(shiny.snapshotsortc = TRUE)`. `{shinytest2}` users do not
need to set this value. (#3515)
* Closed rstudio/shinytest2#222: When restoring a context (i.e.,
bookmarking) from a URL, Shiny now better handles a trailing `=`
after `_inputs_` and `_values_`. (#3648)
* Shiny's internal HTML dependencies are now mounted dynamically
instead of statically. (#3537)
* HTML dependencies that are sent to dynamic UI now have better type
checking, and no longer require a `dep.src.href` field. (#3537)
|
Log message:
(www/R-shiny) Updated 1.6.0 to 1.7.1
shiny 1.7.1
===========
## Bug Fixes
* Closed #3516: Fix regression in repeated calls to `appendTab()` when
`navbarMenu()` is already present within a
`tabsetPanel()`/`navbarPage()`. (#3518)
* Re-arranged conditions for testthat 1.0.0 compatibility. (#3512)
shiny 1.7.0
===========
## Full changelog
### Breaking changes
* The `format` and `locale` arguments to `sliderInput()` have been
removed. They have been deprecated since 0.10.2.2 (released on
2014-12-08).
* Closed #3403: `insertTab()`'s `position` parameter now defaults to
`"after"` instead of `"before"`. This has the benefit of \
allowing us
to fix a bug in positioning when `target = NULL`, but has the
drawback of changing the default behavior when `target` is not
`NULL`. (#3404)
### New features and improvements
* Bootstrap 5 support. (#3410 and rstudio/bslib#304)
* As explained
[here](https://rstudio.github.io/bslib/index.html#basic-usage), to
opt-in to Bootstrap 5, provide `bslib::bs_theme(version = 5)` to a
page layout function with a `theme` argument (e.g., `fluidPage()`,
`navbarPage()`, etc).
* Closed #3322, #3313, #1823, #3321, #3320, #1928, and #2310: Various
improvements to `navbarPage()`, `tabsetPanel()`, `tabPanel()`,
`navbarMenu()`, etc. Also, these functions are now powered by the
`{bslib}` package's new `nav()` API (consider using `{bslib}`'s API
to create better looking and more fully featured navs). (#3388)
* All uses of `list(...)` have been replaced with
`rlang::list2(...)`. This means that you can use trailing `,`
without error and use rlang's `!!!` operator to "splice" a list of
argument values into `...`. We think this'll be particularly useful
for passing a list of `tabPanel()` to their consumers (i.e.,
`tabsetPanel()`, `navbarPage()`, etc). For example, `tabs <-
list(tabPanel("A", "a"), tabPanel("B", \
"b"));
navbarPage(!!!tabs)`. (#3315 and #3328)
* `installExprFunction()` and `exprToFunction()` are now able to
handle quosures when `quoted = TRUE`. So `render`-functions which
call these functions (such as with `htmlwidgets`) can now understand
quosures. Users can also use `rlang::inject()` to unquote a quosure
for evaluation. This also means that `render` function no longer
need `env` and `quoted` parameters; that information can be embedded
into a quosure which is then passed to the `render` function. Better
documentation was added for how to create `render`
functions. (#3472)
* `icon(lib="fontawesome")` is now powered by the `{fontawesome}`
package, which will make it easier to use the latest FA icons in the
future (by updating the `{fontawesome}` package). (#3302)
* Closed #3397: `renderPlot()` new uses `ggplot2::get_alt_text()` to inform an \
`alt` text default (for `{ggplot2}` plots). (#3398)
* `modalDialog()` gains support for `size = "xl"`. (#3410)
* Addressed #2521: Updated the list of TCP ports that will be rejected
by default in runapp.R, adding 5060, 5061 and 6566. Added
documentation describing the port range (3000:8000) and which ports
are rejected. (#3456)
### Other improvements
* Shiny's core JavaScript code was converted to TypeScript. For the
latest development information, please see the [README.md in
`./srcts`](https://github.com/rstudio/shiny/tree/master/srcts). (#3296)
* Switched from `digest::digest()` to `rlang::hash()` for hashing. (#3264)
* Switched from internal `Stack` class to `fastmap::faststack()`, and
used `fastmap::fastqueue()`. (#3176)
* Some long-deprecated functions and function parameters were
removed. (#3137)
### Bug fixes
* Closed #3345: Shiny now correctly renders
`htmltools::htmlDependency()`(s) with a `list()` of `script`
attributes when used in a dynamic UI context. This fairly new
`htmlDependency()` feature was added in `{htmltools}`
v0.5.1. (#3395)
* Fixed [#2666](https://github.com/rstudio/shiny/issues/2666) and
[#2670](https://github.com/rstudio/shiny/issues/2670):
`nearPoints()` and `brushedPoints()` weren't properly account for
missing values (#2666 was introduced in
v1.4.0). ([#2668](https://github.com/rstudio/shiny/pull/2668))
* Closed #3374: `quoToFunction()` now works correctly with nested
quosures; and as a result, quasi-quotation with rendering function
(e.g., `renderPrint()`, `renderPlot()`, etc) now works as expected
with nested quosures. (#3373)
* Exported `register_devmode_option()`. This method was described in
the documentation for `devmode()` but was never exported. See
`?devmode()` for more details on how to register Shiny Developer
options using `register_devmode_option()`. (#3364)
* Closed #3484: In the RStudio IDE on Mac 11.5, selected checkboxes
and radio buttons were not visible. (#3485)
### Library updates
* Closed #3286: Updated to Font-Awesome 5.15.2. (#3288)
* Updated to jQuery 3.6.0. (#3311)
|
Log message:
(www/R-shiny) Updated 1.3.2 to 1.6.0
shiny 1.6.0
================
This release focuses on improvements in three main areas:
1. Better theming (and Bootstrap 4) support:
* The `theme` argument of `fluidPage()`, `navbarPage()`, and
`bootstrapPage()` all now understand `bslib::bs_theme()` objects,
which can be used to opt-into Bootstrap 4, use any Bootswatch
theme, and/or implement custom themes without writing any CSS.
* The `session` object now includes `$setCurrentTheme()` and
`$getCurrentTheme()` methods to dynamically update (or obtain) the
page's `theme` after initial load, which is useful for things such
as [adding a dark mode switch to an
app](https://rstudio.github.io/bslib/articles/theming.html#dynamic-shiny)
or some other "real-time" theming tool like `bslib::bs_themer()`.
* For more details, see [`{bslib}`'s
website](https://rstudio.github.io/bslib/)
2. Caching of `reactive()` and `render*()` (e.g. `renderText()`,
`renderTable()`, etc) expressions.
* Such expressions automatically cache their _most recent value_,
which helps to avoid redund ant computation within a single "flush" of
reactivity. The new `bindCache()` function can be used to cache _all
previous values_ (as long as they fit in the cache). This cache may be
optionally scoped within and/or across user sessions, possibly leading
to huge performance gains, especially when deployed at scale across
user sessions.
* For more details, see `help(bindCache, package = "shiny")`
3. Various improvements to accessibility for screen-reader and keyboard users.
* For more details, see the accessibility section below.
## Full changelog
### Breaking changes
* Closed #3074: Shiny no longer supports file uploads for Internet Explorer 8 or \
9. (#3075)
* Subtle changes, and some soft-deprecations, have come to
`freezeReactiveValue` and `freezeReactiveVal` (#3055). These functions
have been fragile at best in previous releases (issues #1791, #2463,
#2946). In this release, we've solved all the problems we know about with
`freezeReactiveValue(input, "x")`, by 1) invalidating `input$x` and set
it to `NULL` whenever we freeze, and 2) ensuring that, after a freeze,
even if the effect of `renderUI` or `updateXXXInput` is to set `input$x`
to the same value it already has, this will result in an invalidation
(whereas by default, Shiny filters out such spurious assignments).
Similar problems may exist when using `freezeReactiveVal`, and when using
`freezeReactiveValue` with non-`input` reactive values objects. But
support for those was added mostly for symmetry with
`freezeReactiveValue(input)`, and given the above issues, it's not clear
to us how you could have used these successfully in the past, or why you
would even want to. For this release, we're soft-deprecating both of
those uses, but we're more than willing to un-deprecate if it turns out
people are using these; if that includes you, please join the
conversation at https://github.com/rstudio/shiny/issues/3063. In the
meantime, you can squelch the deprecation messages for these functions
specifically, by setting `options(shiny.deprecation.messages.freeze =
FALSE)`.
### Accessibility
* Added [bootstrap accessibility
plugin](https://github.com/paypal/bootstrap-accessibility-plugin) under
the hood to improve accessibility of shiny apps for screen-reader and
keyboard users: the enhancements include better navigations for alert,
tooltip, popover, modal dialog, dropdown, tab Panel, collapse, and
carousel elements. (#2911)
* Closed #2987: Improved accessibility of "live regions" -- namely,
`*Output()` bindings and `update*Input()`. (#3042)
* Added appropriate labels to `icon()` element to provide screen-reader
users with alternative descriptions for the `fontawesome` and
`glyphicon`: `aria-label` is automatically applied based on the
fontawesome name. For example, `icon("calendar")` will be announced as
"calendar icon" to screen readers. "presentation" aria \
role has also been
attached to `icon()` to remove redundant semantic info for screen
readers. (#2917)
* Closed #2929: Fixed keyboard accessibility for file picker button:
keyboard users can now tab to focus on `fileInput()` widget. (#2937)
* Fixed #2951: screen readers correctly announce labels and date formats
for `dateInput()` and `dateRangeInput()` widgets. (#2978)
* Closed #2847: `selectInput()` is reasonably accessible for screen readers
even when `selectize` option is set to TRUE. To improve `selectize.js`
accessibility, we have added
[selectize-plugin-a11y](https://github.com/SLMNBJ/selectize-plugin-a11y)
by default. (#2993)
* Closed #612: Added `alt` argument to `renderPlot()` and
`renderCachedPlot()` to specify descriptive texts for `plotOutput()`
objects, which is essential for screen readers. By default, alt text is
set to the static text, "Plot object," but even dynamic text can be made
with reactive function. (#3006, thanks @trafficonese and @leonawicz for
the original PR and discussion via #2494)
* Added semantic landmarks for `mainPanel()` and `sidebarPanel()` so that
assistive technologies can recognize them as "main" and \
"complementary"
region respectively. (#3009)
* Closed #2844: Added `lang` argument to ui `*Page()` functions (e.g.,
`fluidPage`, `bootstrapPage`) that specifies document-level language
within the app for the accessibility of screen readers and search-engine
parsers. By default, it is set to empty string which is commonly
recognized as a browser's default locale. (#2920)
* Improved accessibility for `radioButtons()` and `checkboxGroupInput()`:
All options are now grouped together semantically for assistive
technologies. (thanks @jooyoungseo, #3187).
### Minor new features and improvements
* Added support for Shiny Developer Mode. Developer Mode enables a number
of `options()` to make a developer's life easier, like enabling
non-minified JS and printing messages about deprecated functions and
options. See `?devmode()` for more details. (#3174)
* New `reactiveConsole()` makes it easier to interactively experiment with
reactivity at the console (#2518).
* When UI is specified as a function (e.g. `ui <- function(req) { ... }`),
the response can now be an HTTP response as returned from the (newly
exported) `httpResponse()` function. (#2970)
* `selectInput` and `selectizeInput` now warn about performance
implications when thousands of choices are used, and recommend
[server-side
selectize](https://shiny.rstudio.com/articles/selectize.html) be used
instead. (#2959)
* Closed #2980: `addResourcePath()` now allows paths with a leading `.`
(thanks to @ColinFay). (#2981)
* Closed #2972: `runExample()` now supports the `shiny.port` option (thanks
to @ColinFay). (#2982)
* Closed #2692: `downloadButton()` icon can now be changed via the `icon`
parameter (thanks to @ColinFay). (#3010)
* Closed #2984: improved documentation for `renderCachedPlot()` (thanks to
@aalucaci). (#3016)
* `reactiveValuesToList()` will save its `reactlog` label as
`reactiveValuesToList(<ID>)` vs `as.list(<ID>)` (#3017)
* Removed unused (and non-exported) `cacheContext` class.
* `testServer()` can accept a single server function as input (#2965).
* `shinyOptions()` now has session-level scoping, in addition to global and
application-level scoping. (#3080)
* `runApp()` now warns when running an application in an R package
directory. (#3114)
* Shiny now uses `cache_mem` from the cachem package, instead of
`memoryCache` and `diskCache`. (#3118)
* Closed #3140: Added support for `...` argument in `icon()`. (#3143)
* Closed #629: All `update*` functions now have a default value for
`session`, and issue an informative warning if it is missing. (#3195,
#3199)
* Improved error messages when reading reactive values outside of a
reactive domain (e.g., `reactiveVal()()`). (#3007)
### Bug fixes
* Fixed #1942: Calling `runApp("app.R")` no longer ignores options passed
into `shinyApp()`. This makes it possible for Shiny apps to specify what
port/host should be used by default. (#2969)
* Fixed #3033: When a `DiskCache` was created with both `max_n` and
`max_size`, too many items could get pruned when `prune()` was
called. (#3034)
* Fixed #2703: Fixed numerous issues with some combinations of
`min`/`value`/`max` causing issues with `date[Range]Input()` and
`updateDate[Range]Input()`. (#3038, #3201)
* Fixed #2936: `dateYMD` was giving a warning when passed a vector of dates
from `dateInput` which was greater than length 1. The length check was
removed because it was not needed. (#3061)
* Fixed #2266, #2688: `radioButtons` and `updateRadioButtons` now accept
`character(0)` to indicate that none of the options should be selected
(thanks to @ColinFay). (#3043)
* Fixed a bug that `textAreaInput()` doesn't work as expected for relative
`width` (thanks to @shrektan). (#2049)
* Fixed #2859: `renderPlot()` wasn't correctly setting
`showtext::showtext_opts()`'s `dpi` setting with the correct resolution
on high resolution displays; which means, if the font was rendered by
showtext, font sizes would look smaller than they should on such
displays. (#2941)
* Closed #2910, #2909, #1552: `sliderInput()` warns if the `value` is
outside of `min` and `max`, and errors if `value` is `NULL` or
`NA`. (#3194)
### Library updates
* Removed html5shiv and respond.js, which were used for IE 8 and IE 9
compatibility. (#2973)
* Removed es5-shim library, which was internally used within
`selectInput()` for ECMAScript 5 compatibility. (#2993)
shiny 1.5.0
===========
## Full changelog
### Breaking changes
* Fixed #2869: Until this release, `renderImage()` had a dangerous default
of `deleteFile = TRUE`. (Sorry!) Going forward, calls to `renderImage()`
will need an explicit `deleteFile` argument; for now, failing to provide
one will result in a warning message, and the file will be deleted if it
appears to be within the `tempdir()`. (#2881)
### New features
* The new `shinyAppTemplate()` function creates a new template Shiny
application, where components are optional, such as helper files in an R/
subdirectory, a module, and various kinds of tests. (#2704)
* `runTests()` is a new function that behaves much like R CMD
check. `runTests()` invokes all of the top-level R files in the tests/
directory inside an application, in that application's
environment. (#2585)
* `testServer()` is a new function for testing reactive behavior inside
server functions and
modules. ([#2682](https://github.com/rstudio/shiny/pull/2682),
[#2764](https://github.com/rstudio/shiny/pull/2764),
[#2807](https://github.com/rstudio/shiny/pull/2807))
* The new `moduleServer` function provides a simpler interface for creating
and using modules. (#2773)
* Resolved #2732: `markdown()` is a new function for writing Markdown with
Github extensions directly in Shiny UIs. Markdown rendering is performed
by the [commonmark](https://github.com/jeroen/commonmark)
package. (#2737)
* The `getCurrentOutputInfo()` function can now return the background color
(`bg`), foreground color (`fg`), `accent` (i.e., hyperlink) color, and
`font` information of the output's HTML container. This information is
reported by `plotOutput()`, `imageOutput()`, and any other output
bindings containing a class of `.shiny-report-theme`. This feature allows
developers to style an output's contents based on the container's CSS
styling. (#2740)
### Minor new features and improvements
* Fixed #2042, #2628: In a `dateInput` and `dateRangeInput`, disabled
months and years are now a lighter gray, to make it easier to see that
they are disabled. (#2690)
* `getCurrentOutputInfo()` previously threw an error when called from
outside of an output; now it returns `NULL`. (#2707 and #2858)
* Added a label to observer that auto-reloads `R/` directory to avoid
confusion when using `reactlog`. (#58)
* `getDefaultReactiveDomain()` can now be called inside a
`session$onSessionEnded` callback and will return the calling `session`
information. (#2757)
* Added a `'function'` class to `reactive()` and `reactiveVal()`
objects. (#2793)
* Added a new option (`type = "hidden"`) to `tabsetPanel()`, making it
easier to set the active tab via other input controls (e.g.,
`radioButtons()`) rather than tabs or pills. Use this option in
conjunction with `updateTabsetPanel()` and the new `tabsetPanelBody()`
function (see `help(tabsetPanel)` for an example and more details).
(#2814)
* Added function `updateActionLink()` to update an `actionLink()` label
and/or icon value. (#2811)
* Fixed #2856: Bumped jQuery 3 from 3.4.1 to 3.5.1. (#2857)
### Bug fixes
* Fixed #2606: `debounce()` would not work properly if the code in the
reactive expression threw an error on the first run. (#2652)
* Fixed #2653: The `dataTableOutput()` could have incorrect output if
certain characters were in the column names. (#2658)
### Documentation Updates
### Library updates
* Updated from Font-Awesome 5.3.1 to 5.13.0, which includes icons related
to COVID-19. For upgrade notes, see
https://github.com/FortAwesome/Font-Awesome/blob/master/UPGRADING.md. (#2891)
shiny 1.4.0.2
===========
Minor patch release: fixed some timing-dependent tests failed
intermittently on CRAN build machines.
shiny 1.4.0.1
===========
Minor patch release to account for changes to the grid package that will be
upcoming in the R 4.0 release (#2776).
shiny 1.4.0
===========
## Full changelog
### Breaking changes
* Resolved #2554: Upgraded jQuery from v.1.12.4 to v3.4.1 and bootstrap
from v3.3.7 to v3.4.1. (#2557). Since the jQuery upgrade may introduce
breaking changes to user code, there is an option to switch back to the
old version by setting `options(shiny.jquery.version = 1)`. If you've
hard-coded `shared/jquery[.min].js` in the HTML of your Shiny app, in
order to downgrade, you'll have to change that filepath to
`shared/legacy/jquery[.min].js`.
### Improvements
* Resolved #1433: `plotOutput()`'s coordmap info now includes discrete axis
limits for **ggplot2** plots. As a result, any **shinytest** tests that
contain **ggplot2** plots with discrete axes (that were recorded before
this change) will now report differences that can safely be updated. This
new coordmap info was added to correctly infer what data points are
within an input brush and/or near input click/hover in scenarios where a
non-trivial discrete axis scale is involved (e.g., whenever
`scale_[x/y]_discrete(limits = ...)` and/or free scales across multiple
discrete axes are used). (#2410)
* Resolved #2402: An informative warning is now thrown for mis-specified
(date) strings in `dateInput()`, `updateDateInput()`, `dateRangeInput()`,
and `updateDateRangeInput()`. (#2403)
* If the `shiny.autoload.r` option is set to `TRUE`, all files ending in
`.r` or `.R` contained in a directory named `R/` adjacent to your
application are sourced when your app is started. This will become the
default Shiny behavior in a future release (#2547)
* Resolved #2442: The `shiny:inputchanged` JavaScript event now triggers on
the related input element instead of `document`. Existing event listeners
bound to `document` will still detect the event due to event
bubbling. (#2446)
* Fixed #1393, #2223: For plots with any interactions enabled, the image is
no longer draggable. (#2460)
* Resolved #2469: `renderText` now takes a `sep` argument that is passed to \
`cat`. (#2497)
* Added `resourcePaths()` and `removeResourcePaths()` functions. (#2459)
* Resolved #2433: An informative warning is now thrown if subdirectories of
the app's `www/` directory are masked by other resource prefixes and/or
the same resource prefix is mapped to different local file paths. (#2434)
* Resolved #2478: `cmd + shift + f3` and `ctrl + shift + f3` can now be
used to add a reactlog mark. If reactlog keybindings are used and the
reactlog is not enabled, an error page is displayed showing how to enable
reactlog recordings. (#2560)
### Bug fixes
* Partially resolved #2423: Reactivity in Shiny leaked some memory, because
R can leak memory whenever a new symbols is interned, which happens
whenever a new name/key is used in an environment. R now uses the fastmap
package, which avoids this problem. (#2429)
* Fixed #2267: Fixed a memory leak with `invalidateLater`. (#2555)
* Fixed #1548: The `reactivePoll` function leaked an observer; that is the
observer would continue to exist even if the `reactivePoll` object was no
longer accessible. #2522
* Fixed #2116: Fixed an issue where dynamic tabs could not be added when on
a hosted platform. (#2545)
* Resolved #2515: `selectInput()` and `selectizeInput()` now deal
appropriately with named factors. Note that `updateSelectInput()` and
`updateSelectizeInput()` **do not** yet handle factors; their behavior is
unchanged. (#2524, #2540, #2625)
* Resolved #2471: Large file uploads to a Windows computer were
slow. (#2579)
* Fixed #2387: Updating a `sliderInput()`'s type from numeric to date no
longer changes the rate policy from debounced to immediate. More
generally, updating an input binding with a new type should (no longer)
incorrectly alter the input rate policy. (#2404)
* Fixed #868: If an input is initialized with a `NULL` label, it can now be
updated with a string. Moreover, if an input label is initialized with a
string, it can now be removed by updating with `label=character(0)`
(similar to how `choices` and `selected` can be cleared in
`updateSelectInput()`). (#2406)
* Fixed #2250: `updateSliderInput()` now works with un-specified (or
zero-length) `min`, `max`, and `value`. (#2416)
* Fixed #2396: `selectInput("myID", ...)` resulting in an extra
`myID-selectized` input (introduced in v1.2.0). (#2418)
* Fixed #2233: `verbatimTextOutput()` produced wrapped text on Safari, but
the text should not be wrapped. (#2353)
* Fixed #2335: When `dateInput()`'s `value` was unspecified, and `max`
and/or `min` was set to `Sys.Date()`, the value was not being set
properly. (#2526)
* Fixed #2591: Providing malformed date-strings to `min` or `max` no longer
results in JS errors for `dateInput()` and `dateRangeInput()`. (#2592)
* Fixed
[rstudio/reactlog#36](https://github.com/rstudio/reactlog/issues/36):
Changes to reactive values not displaying accurately in reactlog. (#2424)
* Fixed #2598: Showcase files don't appear with a wide window. (#2582)
* Fixed #2329, #1817: These bugs were reported as fixed in Shiny 1.3.0 but
were not actually fixed because some JavaScript changes were accidentally
not included in the release. The fix resolves issues that occur when
`withProgressBar()` or bookmarking are combined with the
[networkD3](https://christophergandrud.github.io/networkD3/) package's
Sankey plot.
|