#' Set title, subtitle, and footer using \code{visNetworkProxy}
#'
#' @param graph : a \code{\link{visNetworkProxy}} object
#' @param main : For add a title. Character or a named list.
#' \itemize{
#' \item{"text"}{ : Character. Title.}
#' \item{"style"}{ : Optional. Character. HTML style of title.}
#' \item{'hidden'}{ : Optional. Boolean. Force title to be hidden}
#' }
#'
#' @param submain : For add a subtitle. Character or a named list.
#' \itemize{
#' \item{"text"}{ : Character. Subtitle.}
#' \item{"style"}{ : Optional. Character. HTML style of submain.}
#' \item{'hidden'}{ : Optional. Boolean. Force submain to be hidden}
#' }
#'
#' @param footer : For add a footer. Character or a named list.
#' \itemize{
#' \item{"text"}{ : Character. footer.}
#' \item{"style"}{ : Optional. Character. HTML style of footer.}
#' \item{'hidden'}{ : Optional. Boolean. Force footer to be be hidden}
#' }
#'
#'@seealso \link{visNodes} for nodes options, \link{visEdges} for edges options, \link{visGroups} for groups options,
#'\link{visLegend} for adding legend, \link{visOptions} for custom option, \link{visLayout} & \link{visHierarchicalLayout} for layout,
#'\link{visPhysics} for control physics, \link{visInteraction} for interaction, \link{visNetworkProxy} & \link{visFocus} & \link{visFit} for animation within shiny,
#'\link{visDocumentation}, \link{visEvents}, \link{visConfigure} ...
#'
#' @examples
#'\dontrun{
#'
#'# have a look to :
#'shiny::runApp(system.file("shiny", package = "visNetwork"))
#'
#'}
#'
#'@export
#'@references See online documentation \url{https://datastorm-open.github.io/visNetwork/}
visSetTitle <- function(graph, main = NULL, submain = NULL, footer = NULL){
if(!any(class(graph) %in% "visNetwork_Proxy")){
stop("Can't use visSetTitle with visNetwork object. Only within shiny & using visNetworkProxy")
}
# main
if(!is.null(main)){
if(is.list(main)){
if(any(!names(main)%in%c("text", "style", "hidden"))){
stop("Invalid 'main' argument")
}
if(!"hidden"%in%names(main)){
main$hidden <- FALSE
}
}else if(!inherits(main, "character")){
stop("Invalid 'main' argument. Not a character")
}else {
main <- list(text = main, hidden = FALSE)
}
}
# submain
if(!is.null(submain)){
if(is.list(submain)){
if(any(!names(submain)%in%c("text", "style", "hidden"))){
stop("Invalid 'submain' argument")
}
if(!"hidden"%in%names(submain)){
submain$hidden <- FALSE
}
}else if(!inherits(submain, "character")){
stop("Invalid 'submain' argument. Not a character")
}else {
submain <- list(text = submain, hidden = FALSE)
}
}
# footer
if(!is.null(footer)){
if(is.list(footer)){
if(any(!names(footer)%in%c("text", "style", "hidden"))){
stop("Invalid 'footer' argument")
}
if(!"hidden"%in%names(footer)){
footer$hidden <- FALSE
}
}else if(!inherits(footer, "character")){
stop("Invalid 'footer' argument. Not a character")
}else {
footer <- list(text = footer, hidden = FALSE)
}
}
data <- list(id = graph$id, main = main, submain = submain, footer = footer)
graph$session$sendCustomMessage("visShinySetTitle", data)
graph
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.