| Type: | Package | 
| Title: | XY Controller for 'Shiny' | 
| Version: | 0.2.0 | 
| Maintainer: | Stéphane Laurent <laurent_step@outlook.fr> | 
| Description: | Provides an XY pad input for the 'Shiny' framework. An XY pad is like a bivariate slider. It allows to pick up a pair of numbers. | 
| License: | GPL-3 | 
| Encoding: | UTF-8 | 
| Imports: | shiny | 
| URL: | https://github.com/stla/shinyXYpad | 
| BugReports: | https://github.com/stla/shinyXYpad/issues | 
| RoxygenNote: | 7.2.1 | 
| NeedsCompilation: | no | 
| Packaged: | 2022-09-26 14:24:37 UTC; stla | 
| Author: | Stéphane Laurent [aut, cre], Anthony Terrien [cph] ('jqueryKontrol library') | 
| Repository: | CRAN | 
| Date/Publication: | 2022-09-27 08:10:02 UTC | 
XY pad controller
Description
Creates a XY pad controller to be included in a Shiny UI.
Usage
XYpadInput(
  inputId,
  label = NULL,
  value = list(x = 50, y = 50),
  xmin = 0,
  xmax = 100,
  ymin = 0,
  ymax = 100,
  ndecimals = 2,
  width = 200,
  height = 200,
  bgColor = "rgba(255,200,200,0.2)",
  xyColor = "blue",
  xySize = 11,
  xyStyle = "italic",
  coordsColor = xyColor,
  pointColor = "#16235a",
  pointRadius = 5,
  border = "2px solid #777CA8",
  x = "x",
  y = "y",
  displayPrevious = TRUE,
  displayXY = TRUE,
  onMove = FALSE
)
Arguments
inputId | 
 the input slot that will be used to access the value  | 
label | 
 label for the XY pad, or   | 
value | 
 the initial value, a list of two numbers named   | 
xmin, xmax | 
 minimal x-value and maximal x-value  | 
ymin, ymax | 
 minimal y-value and maximal y-value  | 
ndecimals | 
 number of decimals of the displayed coordinates (if   | 
width | 
 a positive number, the width in pixels  | 
height | 
 a positive number, the height in pixels  | 
bgColor | 
 background color, a HTML color; you have to set some transparency in order to see the coordinates  | 
xyColor | 
 color of the labels of the coordinates (if   | 
xySize | 
 font size of the labels of the coordinates (if   | 
xyStyle | 
 font style of the labels of the coordinates (if   | 
coordsColor | 
 color of the displayed coordinates (if   | 
pointColor | 
 color of the point, a HTML color  | 
pointRadius | 
 radius of the point in pixels  | 
border | 
 CSS for the border of the XY pad  | 
x | 
 label of the x-coordinate (if   | 
y | 
 label of the y-coordinate (if   | 
displayPrevious | 
 logical, whether to display the previous position of the point  | 
displayXY | 
 logical, whether to display the coordinates  | 
onMove | 
 logical, whether to send value to server on mouse move
(  | 
Value
A shiny.tag.list object generating a XY pad input control that
can be added to a Shiny UI definition.
See Also
updateXYpadInput for updating the XY pad on server-side.
Examples
library(shiny)
library(shinyXYpad)
ui <- fluidPage(
  fluidRow(
    column(
      6,
      XYpadInput("xy1", onMove = TRUE, label = "XY pad - on move")
    ),
    column(
      6,
      XYpadInput(
        "xy2", label = "XY pad - on release",
        displayXY = FALSE, displayPrevious = FALSE
      )
    )
  ),
  fluidRow(
    column(6, verbatimTextOutput("xy1value")),
    column(6, verbatimTextOutput("xy2value"))
  )
)
server <- function(input, output, session){
  output[["xy1value"]] <- renderPrint({ input[["xy1"]] })
  output[["xy2value"]] <- renderPrint({ input[["xy2"]] })
}
if(interactive()){
  shinyApp(ui, server)
}
Change a XY pad input on the client
Description
Changes a XY pad input on the client.
Usage
updateXYpadInput(
  session,
  inputId,
  label = NULL,
  value = NULL,
  xmin = NULL,
  xmax = NULL,
  ymin = NULL,
  ymax = NULL,
  ndecimals = NULL,
  bgColor = NULL,
  pointColor = NULL,
  pointRadius = NULL
)
Arguments
session | 
 session object passed to the Shiny server function  | 
inputId | 
 id of the XY pad input  | 
label | 
 new label, or   | 
value | 
 new value, or   | 
xmin | 
 new   | 
xmax | 
 new   | 
ymin | 
 new   | 
ymax | 
 new   | 
ndecimals | 
 new   | 
bgColor | 
 new   | 
pointColor | 
 new   | 
pointRadius | 
 new   | 
Value
No value is returned, called for side-effect.
Examples
library(shiny)
library(shinyXYpad)
ui <- fluidPage(
  fluidRow(
    column(6, XYpadInput("xy", onMove = TRUE, label = "XY pad")),
    column(6, verbatimTextOutput("xyvalue"))
  ),
  br(),
  actionButton("update", "Update")
)
server <- function(input, output, session){
  output[["xyvalue"]] <- renderPrint({ input[["xy"]] })
  observeEvent(input[["update"]], {
    updateXYpadInput(session, "xy", value = list(x = 25, y = 25),
                     bgColor = "chartreuse", pointColor = "yellow",
                     pointRadius = 10, ndecimals = 3)
  })
}
if(interactive()){
  shinyApp(ui, server)
}