Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

event_data() triggering unexpected warning about registering #1528

Closed
bklingen opened this issue May 9, 2019 · 11 comments
Closed

event_data() triggering unexpected warning about registering #1528

bklingen opened this issue May 9, 2019 · 11 comments

Comments

@bklingen
Copy link

bklingen commented May 9, 2019

Using event_data("plotly_hover", source="mysource") seems to trigger the following warning with the newest plotly version:
Warning: The 'plotly_hover' event tied a source ID of 'mysource' is not registered. In order to obtain this event data, please add event_register(p, 'plotly_hover') to the plot (p) that you wish to obtain event data from.

library(shiny)
library(plotly)

ui <- fluidPage(
        plotlyOutput("myplot"),
        verbatimTextOutput("hovered")
      )

server <- function(input, output, session) {
    
    output$myplot <- renderPlotly({
        p <- plot_ly(faithful, x=~eruptions, y=~waiting, source="mysource")
        return(p)
    })
    
    output$hovered <- renderPrint({
      event_data("plotly_hover", source="mysource")
    })

}

shinyApp(ui = ui, server = server)
@bklingen
Copy link
Author

The relevant entry from the plotly source code:

# It's possible for event_data() to execute before any 
  # relevant input values have been registered (i.e, before 
  # relevant plotly graphs have been executed). Therefore, 
  # we delay checking that a relevant input value has been 
  # registered until shiny flushes
  session$onFlushed(
    function() {
      eventIDRegistered <- eventID %in% session$userData$plotlyShinyEventIDs
      if (!eventIDRegistered) {
        warning(
          "The '", event, "' event tied a source ID of '", source, "' ",
          "is not registered. In order to obtain this event data, ", 
          "please add `event_register(p, '", event, "')` to the plot (`p`) ",
          "that you wish to obtain event data from.",
          call. = FALSE
        )
      }
    }
  )```

@cpsievert
Copy link
Collaborator

Huh, the warning seems to go away if you avoid return()

library(shiny)
library(plotly)

ui <- fluidPage(
  plotlyOutput("myplot"),
  verbatimTextOutput("hovered")
)

server <- function(input, output, session) {
  
  output$myplot <- renderPlotly({
    plot_ly(faithful, x=~eruptions, y=~waiting, source="mysource")
  })
  
  output$hovered <- renderPrint({
    event_data("plotly_hover", source="mysource")
  })
  
}

shinyApp(ui = ui, server = server)

@baj12
Copy link

baj12 commented May 15, 2019

How would you handle returning NULL?
I need to stop plot when there is no data (or other criteria are not matched). Currently, I return(NULL),
but I guess this is not optimal. I would rather see a message saying that data needs be loaded, but I still haven't figured out how to do this...
And yes, I have the impression that without the return I see fewer warnings, but I still see some, most probably due to the return(NULL)...
Thanks a lot.
B

@dchen71
Copy link

dchen71 commented May 17, 2019

Are there any docs on how to use event_register? I recently upgrade to the newest plotly r version and am getting event_register errors on all of my scatter plots. I have two different sources for two different plots.

Edit: I figured it out but it would be helpful if there were additional documentation and examples outside of the webinar for this update.

@cpsievert
Copy link
Collaborator

cpsievert commented May 24, 2019

How would you handle returning NULL?

Avoid calling event_data() until the relevant output is non-NULL, like this #1538 (comment)

If someone can some with an example where this is sufficiently hard, I might be willing to add an official way to suppress the warning in event_data()

Are there any docs on how to use event_register?

Sort of, see ?event_register. It's worth noting though that you shouldn't need to use event_register() unless you need an event that isn't registered by default...here's a hack to get at the default events:

p <- plotly_build(plot_ly())
p$x$shinyEvents
 [1] "plotly_hover"          
 [2] "plotly_click"          
 [3] "plotly_selected"       
 [4] "plotly_relayout"       
 [5] "plotly_brushed"        
 [6] "plotly_brushing"       
 [7] "plotly_clickannotation"
 [8] "plotly_doubleclick"    
 [9] "plotly_deselect"       
[10] "plotly_afterplot" 

cpsievert added a commit that referenced this issue Aug 30, 2019
Wrap user-supplied expression in evalq(), closes #1528
chschan pushed a commit to Displayr/plotly that referenced this issue Mar 12, 2020
* New version of scales no longer 'spans the gamut' of a qualitative color palette

* reduce Reduce() for merging lists

use do.call() instead to avoid quadratic complexity of growing lists

* ensure_one(): reduce noise if attrs are NULL

ignore NULL values

* ggplotly: fix Xaxis anchor if the last row incomplete

attach X axis to the last non-empty row in a column

* stylistic changes

* validate new visual baselines

* Doesn't seem like we need to handle yaxis being a factor

and if we do, it likely needs a different fix

* update shinytest baselines

* ugh maintaining shinytest tests for htmlwidgets is a real pain

* update sf baselines

* go back to using ggplotly() to prepare the widget for shiny rendering

* the extra call to plotly_build() forces more computation then necessary and fixes plotly#1569

* Generation of non-intercept data in hline/vline should respect coord_flip(), closes plotly#1519

* update news; fix typo

* Account for new changes in ggplot2's internal API, fixes plotly#1561

* Break values of positional scales have moved from  to
* Text labels of positional scales have moved from  to
* sf graticule degree labels are now quoted?

* include braces

* gsub

* moar braces

* new sf baselines

* update news

* upgrade to plotly.js v1.49.0

* upgrade to plotly.js v1.49.2

* upgrade to plotly.js v1.49.4

* update baseline

* update shinytest baseline

* make a deep copy of x.layout.width/x.layout.height for use in the resize method, closes plotly#1553

* Wrap user-supplied expression in evalq(), closes plotly#1528

* Use shiny::installExprFunction to register debug hooks

* Asynchronously register plot events

* Revert "Merge pull request plotly#1539 from ropensci/renderWidgetPrep"

This reverts commit d416cea, reversing
changes made to d11bb5a.

* no need to be making deep copies

* Improvements to algorithm for attaching key attribute for shiny's event data, fixes plotly#1610

* Account for pointNumbers
* Do nothing if we don't recognize the case

* When pointNumber is a constant, relay it as such

* handle the 3 cases separately

* use idx instead of i

* update news

* Call setInputValue only if it's defined, closes plotly#1624

* Revert "Revert "Merge pull request plotly#1539 from ropensci/renderWidgetPrep""

This reverts commit 2856731.

* pass along a quoted expr that calls func()

* Revert "go back to using ggplotly() to prepare the widget for shiny rendering"

This reverts commit a0fa68f.

* update news

* verify_webgl() shouldn't warn about types that are already gl, closes plotly#1569

* fix test

* Do not create structure with NULL to remove warnings

* Fix management of environments in renderPlotly(), fixes plotly#1639

Both assignment and evaluation of func() should happen in the local environment

* Add test to prove plotly#1299 fix

* proposed change to avoid peeking at 'grid' unit internals

* improve previous commit

* refactor Paul's unit type commits from plotly#1646

* Some CRAN builds don't have pandoc

* plot_mapbox() shouldn't force a scattermapbox trace type, closes plotly#1608

* fix R CMD check notes

* r-devel apparently doesn't yet have grid::unitType()

* remove outdated travis config

* Validate changes visual baselines due to changes in R3.6's new RNG method

* Add support for new plotly_sunburstclick event, closes plotly#1648

* validate new shinytest baselines

* update news

* fix silly mistake from 3cbccfc

* document

* test expectation should account for changes in the default color palette on r-devel

* improve the aforementioned test example and add a visual test

* Ignore calculated aesthetics that match specified aesthestics

After tidyverse/ggplot2@10fa0014, it's possible for calculated aes to exist for all default_aes

* fix broken link raster2uri and improve the description

* cran hyperlinks must be https

* fix roxygen warning

* In contrast to attr(x, unit), the new grid::unitType() function always return a vector the same length as it's input

* bump to release version; submit to CRAN

* Respect sf's plot12 graticule attribute when building axis ticks, fixes plotly#1673

* Remove missing values in ticktext/tickvals

As discussed in tidyverse/ggplot2#3566 (comment), it's now possible for the ggplot2 labels/positions to contains missing values, and we should be able to simply ignore them

* link to comment

* remove outdated/bad test expectation...the visual baseline covers it

* Don't assume sf geometry is always accessible via [['geometry']], fixes plotly#1659

* validate baselines

* update news

* update to plotly.js 1.52.2

* new baselines

* Add image and treemap visual tests. Also, ensure treemap's stroke reflects the paper's bgcolor

* Add Object.setPrototypeOf polyfill for shinytest and update shinytest json baseline

* Add add_image() for easier rendering of image traces via raster objects

* Bump version, update news, document, add unit test for add_image()

* roxygen escapes % now

* Only call locale_dependency() for locales not included with standard bundle, closes plotly#1686

* CRAN submission

* plot_mapbox() should default to scattermapbox unless z is present, fixes plotly#1707

* add visual test for plotly#1674

* update poor test expectations that assume stringsAsFactors defaults to TRUE

* bump version; update news

* update visual tests

* remove rnaturalearth dependency in tests

Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
Co-authored-by: Alexey Stukalov <astukalov@gmail.com>
Co-authored-by: Wim <wfjvdham@gmail.com>
Co-authored-by: Paul Murrell <paul@stat.auckland.ac.nz>
@CDorich
Copy link

CDorich commented Sep 15, 2021

I am still running into this issue of Warning: The 'plotly_hover' event tied a source ID of 'mysource' is not registered. In order to obtain this event data, please add event_register(p, 'plotly_hover') to the plot (p) that you wish to obtain event data from.
I've copied Carson's code from this post, and mixed it with my own editable plotly in a test shiny app and can get it to work. When I run it in a larger app I am getting the same warning but the observe() or event_data("plotly_relayout") does not seem to be working with this app. I can get the shape to move but no underlying data is changing. I am completely stuck about how to get an event_register() to work and why I am not seeing any observe occur with the edited plot.... any guidance on how to code in an event_register() or why I can't see any interaction on this plot?

@samssann
Copy link

samssann commented Nov 2, 2021

You could give the warning a class so that these specific warnings could be turned off.

  session$onFlushed(
    function() {
      eventIDRegistered <- eventID %in% session$userData$plotlyShinyEventIDs
      if (!eventIDRegistered) {
        rlang::warn(
          paste0("The '", event, "' event tied a source ID of '", source, "' ",
          "is not registered. In order to obtain this event data, ", 
          "please add `event_register(p, '", event, "')` to the plot (`p`) ",
          "that you wish to obtain event data from."),
          class = "plotly_unregistered_event_warning"
        )
      }
    }
  )

These warnings can be disabled in the shiny server code by wrapping this around the desired code

suppressWarnings(..., classes = "plotly_unregistered_event_warning")

@sanjmeh
Copy link

sanjmeh commented Dec 4, 2021

I started getting this warning as soon as I started using source argument in plot_ly(). Seems there is no clear cut solution to this as I see above. Is there any?

@davidseres
Copy link

You could give the warning a class so that these specific warnings could be turned off.

  session$onFlushed(
    function() {
      eventIDRegistered <- eventID %in% session$userData$plotlyShinyEventIDs
      if (!eventIDRegistered) {
        rlang::warn(
          paste0("The '", event, "' event tied a source ID of '", source, "' ",
          "is not registered. In order to obtain this event data, ", 
          "please add `event_register(p, '", event, "')` to the plot (`p`) ",
          "that you wish to obtain event data from."),
          class = "plotly_unregistered_event_warning"
        )
      }
    }
  )

These warnings can be disabled in the shiny server code by wrapping this around the desired code

suppressWarnings(..., classes = "plotly_unregistered_event_warning")

Where does eventID come from?

chschan pushed a commit to Displayr/plotly that referenced this issue Jun 26, 2022
* New version of scales no longer 'spans the gamut' of a qualitative color palette

* reduce Reduce() for merging lists

use do.call() instead to avoid quadratic complexity of growing lists

* ensure_one(): reduce noise if attrs are NULL

ignore NULL values

* ggplotly: fix Xaxis anchor if the last row incomplete

attach X axis to the last non-empty row in a column

* stylistic changes

* validate new visual baselines

* Doesn't seem like we need to handle yaxis being a factor

and if we do, it likely needs a different fix

* update shinytest baselines

* ugh maintaining shinytest tests for htmlwidgets is a real pain

* update sf baselines

* go back to using ggplotly() to prepare the widget for shiny rendering

* the extra call to plotly_build() forces more computation then necessary and fixes plotly#1569

* Generation of non-intercept data in hline/vline should respect coord_flip(), closes plotly#1519

* update news; fix typo

* Account for new changes in ggplot2's internal API, fixes plotly#1561

* Break values of positional scales have moved from  to
* Text labels of positional scales have moved from  to
* sf graticule degree labels are now quoted?

* include braces

* gsub

* moar braces

* new sf baselines

* update news

* upgrade to plotly.js v1.49.0

* upgrade to plotly.js v1.49.2

* upgrade to plotly.js v1.49.4

* update baseline

* update shinytest baseline

* make a deep copy of x.layout.width/x.layout.height for use in the resize method, closes plotly#1553

* Wrap user-supplied expression in evalq(), closes plotly#1528

* Use shiny::installExprFunction to register debug hooks

* Asynchronously register plot events

* Revert "Merge pull request plotly#1539 from ropensci/renderWidgetPrep"

This reverts commit d416cea, reversing
changes made to d11bb5a.

* no need to be making deep copies

* Improvements to algorithm for attaching key attribute for shiny's event data, fixes plotly#1610

* Account for pointNumbers
* Do nothing if we don't recognize the case

* When pointNumber is a constant, relay it as such

* handle the 3 cases separately

* use idx instead of i

* update news

* Call setInputValue only if it's defined, closes plotly#1624

* Revert "Revert "Merge pull request plotly#1539 from ropensci/renderWidgetPrep""

This reverts commit 2856731.

* pass along a quoted expr that calls func()

* Revert "go back to using ggplotly() to prepare the widget for shiny rendering"

This reverts commit a0fa68f.

* update news

* verify_webgl() shouldn't warn about types that are already gl, closes plotly#1569

* fix test

* Do not create structure with NULL to remove warnings

* Fix management of environments in renderPlotly(), fixes plotly#1639

Both assignment and evaluation of func() should happen in the local environment

* Add test to prove plotly#1299 fix

* proposed change to avoid peeking at 'grid' unit internals

* improve previous commit

* refactor Paul's unit type commits from plotly#1646

* Some CRAN builds don't have pandoc

* plot_mapbox() shouldn't force a scattermapbox trace type, closes plotly#1608

* fix R CMD check notes

* r-devel apparently doesn't yet have grid::unitType()

* remove outdated travis config

* Validate changes visual baselines due to changes in R3.6's new RNG method

* Add support for new plotly_sunburstclick event, closes plotly#1648

* validate new shinytest baselines

* update news

* fix silly mistake from 3cbccfc

* document

* test expectation should account for changes in the default color palette on r-devel

* improve the aforementioned test example and add a visual test

* Ignore calculated aesthetics that match specified aesthestics

After tidyverse/ggplot2@10fa0014, it's possible for calculated aes to exist for all default_aes

* fix broken link raster2uri and improve the description

* cran hyperlinks must be https

* fix roxygen warning

* In contrast to attr(x, unit), the new grid::unitType() function always return a vector the same length as it's input

* bump to release version; submit to CRAN

* Respect sf's plot12 graticule attribute when building axis ticks, fixes plotly#1673

* Remove missing values in ticktext/tickvals

As discussed in tidyverse/ggplot2#3566 (comment), it's now possible for the ggplot2 labels/positions to contains missing values, and we should be able to simply ignore them

* link to comment

* remove outdated/bad test expectation...the visual baseline covers it

* Don't assume sf geometry is always accessible via [['geometry']], fixes plotly#1659

* validate baselines

* update news

* update to plotly.js 1.52.2

* new baselines

* Add image and treemap visual tests. Also, ensure treemap's stroke reflects the paper's bgcolor

* Add Object.setPrototypeOf polyfill for shinytest and update shinytest json baseline

* Add add_image() for easier rendering of image traces via raster objects

* Bump version, update news, document, add unit test for add_image()

* roxygen escapes % now

* Only call locale_dependency() for locales not included with standard bundle, closes plotly#1686

* CRAN submission

* plot_mapbox() should default to scattermapbox unless z is present, fixes plotly#1707

* add visual test for plotly#1674

* update poor test expectations that assume stringsAsFactors defaults to TRUE

* bump version; update news

* update visual tests

* remove rnaturalearth dependency in tests

Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
Co-authored-by: Alexey Stukalov <astukalov@gmail.com>
Co-authored-by: Wim <wfjvdham@gmail.com>
Co-authored-by: Paul Murrell <paul@stat.auckland.ac.nz>
chschan added a commit to Displayr/plotly that referenced this issue Jul 4, 2022
* Start v4.9.4 release candidate (plotly#1959)

* Add crosstalk mapping to computed_mapping (not mapping) when present (plotly#1964)

* Follow up to plotly#1952: add crosstalk mapping to computed_mapping (not mapping) when present

* use dev version; update news

* v4.9.4.1 release candidate (plotly#1965)

* v4.9.4.1 release candidate

* Reduce some of the warning noise

* Reduce some of the warning noise

* use dev version

* Upgrade to plotly.js 2.0 (plotly#1967)

* wip upgrade to plotly.js 2.0

* patch plotly.js source to support phantomjs/shinytest

reverts part of plotly/plotly.js#5380

* bump mathjax version

* use npm instead of yarn

* make geom_bar() default to textposition='none'; approve new vdiffr 0.4 + plotly.js 2.0 baselines

* Migrate to vdiffr 1.0

* Use layout.legend.title over layout.annotations to when converting guides for discrete scales

* wip migrate to gha

* try npm install

* setup node

* use recommended node version

* try mac instead

* install phantomjs; various cleanup

* intentionally break a visual test

* fix

* use thematic's approach to testing

* bump version

* regenerate snapshots

* map secrets to env variables

* accept new gha baselines

* whoops

* hmm

* approve shinytest baseline

* intentionally break a visual test

* always upload

* revert change; new baselines

* Remove the vdiffr dependency and use testthat snaphots directly

* More obvious env var naming

* more gha details

* always upload

* new snaps

* intentionally break a visual test (again)

* Revert "intentionally break a visual test (again)"

This reverts commit a4e306c.

* Update subplots.R (plotly#1974)

To get rid of "Error is get_domains(length(plots), nrows, margin, widths = widths, heights = heights): The sum of the widths and heights arguments must be less than 1.

* Better positioning of facet axis annotations (plotly#1975)

* Add kaleido() for static image exporting (plotly#1971)

* Close plotly#1970: revert plotly.js 2.0 change in default modebar buttons

* Add save_image(), a convenience wrapper around kaleido()$transform() (plotly#1981)

* Upgrade to plotly.js v2.2.1 (plotly#1982)

* Use Plotly.react() to redraw in Shiny if layout.transition is populated (plotly#2001)

* Use Plotly.react() to redraw in Shiny if layout.transition is populated

* update news

* Update to plotly.js v2.5.1 (plotly#2002)

* update to plotly.js v2.5.1

* new visual baselines

* Closes plotly#2031. ggplot internaly convert `color` to `colour`

* Update README.md

* update baselines

* update URLs

* add_area() now uses barpolar instead of area (plotly#2041)

* Closes plotly#1872. Implemented to_basic for `geom_function`

* 4.10.0 release

* Added unit tests. And ran tests using

* Conformed with carson's review

* Reverted the deletion of _snaps

* Added test to check whether the fix works or not.

* Added test to check whether the fix works or not.

* use dev versioning

* Fix "partial argument match" warnings (plotly#1977)

* No partial-argument-match warning in ggplotly

* Update NEWS.md

* Solved the LaTeX2exp error. Closes plotly#2027 (plotly#2030)

Co-authored-by: Carson Sievert <cpsievert1@gmail.com>

* Revert "Solved the LaTeX2exp error. Closes plotly#2027 (plotly#2030)"

This reverts commit aeaecd6.

* Add ggalluvial support (plotly#2061)

Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
Co-authored-by: Abdessabour Moutik <abds.papa@gmail.com>

* Fix ordering of lines in stat_ecdf() (plotly#2065)

* Handle geom_tile() with no fill aesthetic (plotly#2063)

* More careful joining of group columns (plotly#2064)

* Avoid with() to better account for missing tickvals/ticktext (plotly#2062)

* Test discrete-ness of fill after statistics have been calculated (plotly#2066)

* Announce snapshot files when visual testing isn't enabled so they won't get deleted

* Respect guide(aes = 'none') when constructing legend entries (plotly#2067)

* Add 'plotly_selecting' to acceptable 'on' events (plotly#1280)

* Use faster versions of system.file()/packageVersion()/is_installed() (plotly#2072)

* Bump plotly.js to 2.11.1 (plotly#2096)

* approve new visual baselines

* Use rlang::local_options() in test

* new shinytest baselines; avoid rlang altogether

* plotly.js fix bug when crosstalk filter keys are null (plotly#2087)

* transition `tidyr::gather_` -> `tidyr::pivot_longer` (plotly#2125)

* transition `tidyr::gather_` -> `tidyr::pivot_longer`

* add `NEWS` entry

* Replace `is.na` with `rlang::is_na` in `map_color()` (plotly#2131)

* roxygenize

* Support renderValue within iframe

* Add yaml for auto-P.R./fork updating; RS-2202

* [pull] master from ropensci:master (#2)

* New version of scales no longer 'spans the gamut' of a qualitative color palette

* reduce Reduce() for merging lists

use do.call() instead to avoid quadratic complexity of growing lists

* ensure_one(): reduce noise if attrs are NULL

ignore NULL values

* ggplotly: fix Xaxis anchor if the last row incomplete

attach X axis to the last non-empty row in a column

* stylistic changes

* validate new visual baselines

* Doesn't seem like we need to handle yaxis being a factor

and if we do, it likely needs a different fix

* update shinytest baselines

* ugh maintaining shinytest tests for htmlwidgets is a real pain

* update sf baselines

* go back to using ggplotly() to prepare the widget for shiny rendering

* the extra call to plotly_build() forces more computation then necessary and fixes plotly#1569

* Generation of non-intercept data in hline/vline should respect coord_flip(), closes plotly#1519

* update news; fix typo

* Account for new changes in ggplot2's internal API, fixes plotly#1561

* Break values of positional scales have moved from  to
* Text labels of positional scales have moved from  to
* sf graticule degree labels are now quoted?

* include braces

* gsub

* moar braces

* new sf baselines

* update news

* upgrade to plotly.js v1.49.0

* upgrade to plotly.js v1.49.2

* upgrade to plotly.js v1.49.4

* update baseline

* update shinytest baseline

* make a deep copy of x.layout.width/x.layout.height for use in the resize method, closes plotly#1553

* Wrap user-supplied expression in evalq(), closes plotly#1528

* Use shiny::installExprFunction to register debug hooks

* Asynchronously register plot events

* Revert "Merge pull request plotly#1539 from ropensci/renderWidgetPrep"

This reverts commit d416cea, reversing
changes made to d11bb5a.

* no need to be making deep copies

* Improvements to algorithm for attaching key attribute for shiny's event data, fixes plotly#1610

* Account for pointNumbers
* Do nothing if we don't recognize the case

* When pointNumber is a constant, relay it as such

* handle the 3 cases separately

* use idx instead of i

* update news

* Call setInputValue only if it's defined, closes plotly#1624

* Revert "Revert "Merge pull request plotly#1539 from ropensci/renderWidgetPrep""

This reverts commit 2856731.

* pass along a quoted expr that calls func()

* Revert "go back to using ggplotly() to prepare the widget for shiny rendering"

This reverts commit a0fa68f.

* update news

* verify_webgl() shouldn't warn about types that are already gl, closes plotly#1569

* fix test

* Do not create structure with NULL to remove warnings

* Fix management of environments in renderPlotly(), fixes plotly#1639

Both assignment and evaluation of func() should happen in the local environment

* Add test to prove plotly#1299 fix

* proposed change to avoid peeking at 'grid' unit internals

* improve previous commit

* refactor Paul's unit type commits from plotly#1646

* Some CRAN builds don't have pandoc

* plot_mapbox() shouldn't force a scattermapbox trace type, closes plotly#1608

* fix R CMD check notes

* r-devel apparently doesn't yet have grid::unitType()

* remove outdated travis config

* Validate changes visual baselines due to changes in R3.6's new RNG method

* Add support for new plotly_sunburstclick event, closes plotly#1648

* validate new shinytest baselines

* update news

* fix silly mistake from 3cbccfc

* document

* test expectation should account for changes in the default color palette on r-devel

* improve the aforementioned test example and add a visual test

* Ignore calculated aesthetics that match specified aesthestics

After tidyverse/ggplot2@10fa0014, it's possible for calculated aes to exist for all default_aes

* fix broken link raster2uri and improve the description

* cran hyperlinks must be https

* fix roxygen warning

* In contrast to attr(x, unit), the new grid::unitType() function always return a vector the same length as it's input

* bump to release version; submit to CRAN

* Respect sf's plot12 graticule attribute when building axis ticks, fixes plotly#1673

* Remove missing values in ticktext/tickvals

As discussed in tidyverse/ggplot2#3566 (comment), it's now possible for the ggplot2 labels/positions to contains missing values, and we should be able to simply ignore them

* link to comment

* remove outdated/bad test expectation...the visual baseline covers it

* Don't assume sf geometry is always accessible via [['geometry']], fixes plotly#1659

* validate baselines

* update news

* update to plotly.js 1.52.2

* new baselines

* Add image and treemap visual tests. Also, ensure treemap's stroke reflects the paper's bgcolor

* Add Object.setPrototypeOf polyfill for shinytest and update shinytest json baseline

* Add add_image() for easier rendering of image traces via raster objects

* Bump version, update news, document, add unit test for add_image()

* roxygen escapes % now

* Only call locale_dependency() for locales not included with standard bundle, closes plotly#1686

* CRAN submission

* plot_mapbox() should default to scattermapbox unless z is present, fixes plotly#1707

* add visual test for plotly#1674

* update poor test expectations that assume stringsAsFactors defaults to TRUE

* bump version; update news

* update visual tests

* remove rnaturalearth dependency in tests

Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
Co-authored-by: Alexey Stukalov <astukalov@gmail.com>
Co-authored-by: Wim <wfjvdham@gmail.com>
Co-authored-by: Paul Murrell <paul@stat.auckland.ac.nz>

* Add back missing layout attribute

* Pass element instead of ID

* VIS-992: add test, use rhtmlBuildUtils (#15)

* Initial commit

* Remove prepush

* Final line for plotly.yml

* Re-add lib

* Refactor

* Create test

* Specify rhtmlBuildUtils version

* Remove preinstall script

* Delete package-lock.json

* Update documentation

* Update documentation and remove library

* Restore files

* Restore file

* Update build files

* VIS-933: add rhtmlwidget-status attribute (#16)

* Test callback

* Update compiled files

* Add rhtmlwidget-status attribute

* wording change

* VIS-1064: fix PPT exporting issue (#17)

* Candidate fix

* Bump version

* Update widgetdefinition.js and build

Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
Co-authored-by: Abhilash Lakshman <46469834+abhilashlakshman@users.noreply.github.com>
Co-authored-by: Abdessabour Moutik <abds.papa@gmail.com>
Co-authored-by: Jack Parmer <jparmer09@gmail.com>
Co-authored-by: bersbersbers <12128514+bersbersbers@users.noreply.github.com>
Co-authored-by: casperhart <39182232+casperhart@users.noreply.github.com>
Co-authored-by: Simon P. Couch <simonpatrickcouch@gmail.com>
Co-authored-by: Paul Hoffman <mojaveazure@users.noreply.github.com>
Co-authored-by: Jeffrey Shen <jeffrey.shen@displayr.com>
Co-authored-by: flipDevTools <opensource@displayr.com>
Co-authored-by: pull[bot] <39814207+pull[bot]@users.noreply.github.com>
Co-authored-by: Alexey Stukalov <astukalov@gmail.com>
Co-authored-by: Wim <wfjvdham@gmail.com>
Co-authored-by: Paul Murrell <paul@stat.auckland.ac.nz>
Co-authored-by: Justin Yap <JustinCCYap@users.noreply.github.com>
@dvg-p4
Copy link
Contributor

dvg-p4 commented Jan 31, 2024

How would you handle returning NULL?

Avoid calling event_data() until the relevant output is non-NULL, like this #1538 (comment)

If someone can some with an example where this is sufficiently hard, I might be willing to add an official way to suppress the warning in event_data()

Are there any docs on how to use event_register?

Sort of, see ?event_register. It's worth noting though that you shouldn't need to use event_register() unless you need an event that isn't registered by default...here's a hack to get at the default events:

@cpsievert I'm a bit confused, if the recommended way to avoid this warning is a req() above the call, why is the warning message itself talking about event_register()?

@dvg-p4
Copy link
Contributor

dvg-p4 commented Jan 31, 2024

Also, the req() method isn't working consistently for me in a larger app. IIUC when the renderPlotly() and the reactive holding event_data() are both depending on the same reactive, there's no guarantee as to which will be executed first when that reactive becomes available--so if the shiny reactive queue happens to execute the event_data first, we see the warning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants