Edit R Data with 'react-json'
reactjson(
listdata = list(),
name = "root",
theme = "rjv-default",
iconStyle = c("circle", "triangle", "square"),
indentWidth = 4,
collapsed = FALSE,
collapseStringsAfterLength = FALSE,
groupArraysAfterLength = 100,
enableClipboard = TRUE,
displayObjectSize = TRUE,
displayDataTypes = TRUE,
onEdit = TRUE,
onAdd = TRUE,
onDelete = TRUE,
onSelect = TRUE,
sortKeys = FALSE,
width = NULL,
height = NULL,
elementId = NULL
)list or String data to view. Although designed for lists, listdata can
be any data source that can be rendered into JSON with jsonlite. Alternately,
listdata could be a String of valid JSON. This might be helpful
when dealing with an API response.
string name of the root node. Default is "root".
string name of the theme. Default is "rjv-default".
string shape for the expand/collapse icon. Options are circle,
triangle, and square with the default as "circle".
integer for the indent width for nested objects. Default is 4.
logical or integer. Use logical to expand/collapse all nodes.
Use integer to specify the depth at which to collapse.
integer for the length at which strings will be cut off
Collapsed strings are followed by an ellipsis. String content can be expanded and
collapsed by clicking on the string value.
integer for the count at which arrays will be displayed in groups.
Groups are displayed with bracket notation and can be expanded and collapsed.
by clicking on the brackets.
logical whether the user can copy objects and arrays
clicking on the clipboard icon. Copy callbacks are supported. Default is TRUE.
logical whether or not objects and arrays are labeled with size.
Default is TRUE.
logical whether or not data type labels prefix values.
Default is TRUE.
htmlwidgets::JS or logical
to control behavior on edit, add, delete, and select. If htmlwidgets::JS
function is provided, then the function will be performed on each event. If
logical then TRUE means that the event will be passed to Shiny and
FALSE will disable the behavior. The default is TRUE.
logical whether or not to sort object keys. Default is FALSE.
integer in pixels defining the width of the div container.
integer in pixels defining the height of the div container.
character to specify valid CSS id of the
htmlwidget for special situations in which you want a non-random
identifier.
if (FALSE) {
library(listviewer)
# use reactR for React dependencies
# devtools::install_github("timelyportfolio/reactR")
library(reactR)
reactjson()
reactjson(head(mtcars,4))
reactjson(I(jsonlite::toJSON(head(mtcars,5))))
library(shiny)
shinyApp(
ui = reactjson(
list(x=1,msg="react+r+shiny",opts=list(use_react=FALSE)),
elementId = "json1"
),
server = function(input, output, session){
observeEvent(
input$json1_change,
str(input$json1_change)
)
}
)
# gadget to use as editor
library(miniUI)
ui <- miniUI::miniPage(
miniUI::miniContentPanel(
reactjson(
list(x=1,msg="react+r+shiny",opts=list(use_react=FALSE)),
elementId = "rjeditor"
)
),
miniUI::gadgetTitleBar(
"Edit",
right = miniUI::miniTitleBarButton("done", "Done", primary = TRUE)
)
)
server <- function(input, output, session) {
shiny::observeEvent(input$done, {
shiny::stopApp(
input$rjeditor_change
)
})
shiny::observeEvent(input$cancel, { shiny::stopApp (NULL) })
}
runGadget(
ui,
server,
viewer = shiny::paneViewer()
)
}