* disable stylesheet on next tick to avoid FOUC
* fix regex matching logic
* Avoid regex and remove stylesheet's ownerNode after disabling
* Use inline <style> as opposed to <link> tags when restyling for IE11 compatibility
* Be more careful to avoid possibility of removal modifying styleSheets
* Use inline <style> for IE; otherwise update the <link>
* Update srcjs/output_binding_html.js
Co-authored-by: Winston Chang <winston@stdout.org>
* Update browser.js to correctly detect IE11
* remove redundant if statements
Co-authored-by: Winston Chang <winston@stdout.org>
This brings it into line with all of the other input bindings.
The only exception is sliderInput, which has a more complicated
codepath that goes out of its way to force the slider, for its
own reasons; I didn't change the slider for fear of breaking
something, and it also doesn't exhibit the problem I'm here to
fix (next paragraph).
The goal is to ensure that if forgetLastInput is called on an
input, and then that input receives a message (updateXXXInput)
to update its value, BUT the new value is the SAME as its
existing value, that the input binding still acts like something
changed. This is because we need the id/value to go through
the InputSender code path, and alert the server if a previously
frozen input is now thawed.
1. freezeReactiveValue(input, "x") is called, inside a renderUI
or in an observer that then calls updateXXXInput
2. Some reactive output tries to access input$x, this takes a
reactive dependency but throws a (silent) error
3. When the flush cycle ends, it automatically thaws
What's *supposed* to happen next is the client receives the new
UI or updateXXXInput message, which causes input$x to change,
which causes the reactive output to invalidate and re-run, this
time without input$x being frozen.
This works, except when the renderUI or updateXXXInput just so
happens to set input$x to the same value it already is. In this
case, the client would detect the duplicate value and not send
it to the server. Therefore, the reactive output would not be
invalidated, and effectively be "stalled" until the next time it
is invalidated for some other reason.
With this change, freezeReactiveValue(input, "x") has a new side
effect, which is telling the client that the very next update to
input$x should not undergo duplicate checking.
Squashed commit of the following:
commit a095d75b67a0bad439e8d6c495ef81af25c0b1a9
Author: Winston Chang <winston@stdout.org>
Date: Thu Sep 24 10:30:47 2020 -0500
Update NEWS
commit 715a10ebd63c34eb2f464a7388e0b89b994bee0f
Author: Winston Chang <winston@stdout.org>
Date: Thu Sep 24 10:24:24 2020 -0500
Update docs for radioButtons about having none selected
commit eff9036884693002a84f84df16cf699be2358c1c
Author: Winston Chang <winston@stdout.org>
Date: Thu Sep 24 10:15:59 2020 -0500
Cleaner check for no selected radioButtons
commit 1666baa746f4dea986be4929720de2a5653acbb6
Merge: c0d35e84b04ba393
Author: Winston Chang <winston@stdout.org>
Date: Thu Sep 24 10:02:16 2020 -0500
Merge branch '2688' of https://github.com/ColinFay/shiny into ColinFay-2688
commit b04ba393b8
Author: colin <colin@thinkr.fr>
Date: Thu Sep 24 08:37:58 2020 +0200
changed the test structure
commit 866a86946a
Author: colin <colin@thinkr.fr>
Date: Sun Sep 13 20:50:44 2020 +0200
restore old `$escape` behavior
commit d45af353fd
Author: colin <colin@thinkr.fr>
Date: Fri Sep 11 08:54:25 2020 +0200
added trailing ; and space before {
commit 5e95ee03a1
Author: colin <colin@thinkr.fr>
Date: Thu Sep 10 21:55:02 2020 +0200
return early if the value is undefined in setValue of radio
commit 24ac6ec624
Author: colin <colin@thinkr.fr>
Date: Thu Sep 10 21:53:41 2020 +0200
Testing that the type of val is a string, instead of relying on the length
commit 18ec3b8540
Author: colin <colin@thinkr.fr>
Date: Wed Sep 9 22:08:45 2020 +0200
Radio buttons can now be reset with character(0), and their value is set to NULL
Close#2688 and close#2266
commit d7f66165d0
Author: colin <colin@thinkr.fr>
Date: Wed Sep 9 22:08:06 2020 +0200
Correct bug when $escape received an empty value
Also, rename autocolors to autotheme as we'd like to support fonts and possibly more in the future
Also, wrap ggplot2 default overriding and building logic into one function, so plotly can use it in a self-contained fashion
Since these classes were added, we've decided to handle more of this
kind of thing in the bootscss package, so bs3 markup can work without
modification in many cases.
1) In srcjs/input_rate.js line 284, the global variable `name` was
being written to.
2) In a couple of other places in that file, the global variable
`name` was being read instead of `nameType`--the result of an
incomplete refactor.
Also added an eslint rule to prevent this and other globals from
being read implicitly.