121 lines
2.7 KiB
R
121 lines
2.7 KiB
R
|
|
|
|
|
|
# Parsing options ---------------------------------------------------------
|
|
|
|
cx <- V8::v8()
|
|
cx$source(file = "inst/htmlwidgets/lib/apexcharts-1.0.4/Options.js")
|
|
ApexOpts <- cx$get("Options")
|
|
|
|
names(ApexOpts)
|
|
str(ApexOpts$chart, max.level = 1)
|
|
str(ApexOpts$chart$animations, max.level = 1)
|
|
|
|
|
|
|
|
# Utils -------------------------------------------------------------------
|
|
|
|
make_fun <- function(opts, name, file = "") {
|
|
args <- names(opts[[name]])
|
|
if (is.null(args)) {
|
|
args <- "..."
|
|
} else {
|
|
args <- sprintf("%s = NULL", args)
|
|
args <- paste(args, collapse = ",\n")
|
|
args <- paste0(args, ", ...")
|
|
}
|
|
body <- paste(
|
|
"\nparams <- c(as.list(environment()), list(...))[-1]",
|
|
paste0(".ax_opt2(ax, \"", name, "\", l = dropNulls(params))\n"),
|
|
sep = "\n"
|
|
)
|
|
res <- paste0("ax_", name, " <- function(ax, ", args, ") {", body, "}\n\n\n")
|
|
cat(res, file = file, append = TRUE)
|
|
return(invisible(res))
|
|
}
|
|
|
|
make_opts <- function(opts, name, file = "") {
|
|
args <- names(opts[[name]])
|
|
if (is.null(args)) {
|
|
args <- "..."
|
|
body <- "list(...)"
|
|
} else {
|
|
body <- sprintf("%s = %s", args, args)
|
|
body <- paste(body, collapse = ",\n")
|
|
body <- paste0("c(list(", body, "), list(...))")
|
|
args <- sprintf("%s = NULL", args)
|
|
args <- paste(args, collapse = ",\n")
|
|
args <- paste0(args, ", ...")
|
|
}
|
|
body <- paste0("dropNulls(", body, ")")
|
|
res <- paste0(name, "Opts", " <- function(", args, ") {", body, "}\n\n\n")
|
|
cat(res, file = file, append = TRUE)
|
|
return(invisible(res))
|
|
}
|
|
|
|
|
|
|
|
|
|
# chart -------------------------------------------------------------------
|
|
|
|
make_fun(ApexOpts, "chart")
|
|
|
|
|
|
|
|
# plotOptions -------------------------------------------------------------
|
|
|
|
make_fun(ApexOpts, "plotOptions")
|
|
|
|
|
|
|
|
|
|
# ALL ---------------------------------------------------------------------
|
|
|
|
lapply(
|
|
X = names(ApexOpts),
|
|
FUN = make_fun, opts = ApexOpts, file = "R/apex-utils.R"
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Options -----------------------------------------------------------------
|
|
|
|
# scroller
|
|
str(ApexOpts$chart$scroller)
|
|
|
|
make_opts(ApexOpts$chart, "scroller")
|
|
|
|
# plotOptions -- bar
|
|
make_opts(ApexOpts$plotOptions, "bar")
|
|
|
|
|
|
|
|
|
|
### write funs
|
|
|
|
# chart
|
|
str(ApexOpts$chart, max.level = 1)
|
|
make_opts(ApexOpts$chart, "scroller", file = "R/apex-options.R")
|
|
make_opts(ApexOpts$chart, "events", file = "R/apex-options.R")
|
|
make_opts(ApexOpts$chart, "selection", file = "R/apex-options.R")
|
|
|
|
|
|
# plotOptions
|
|
str(ApexOpts$plotOptions, max.level = 1)
|
|
make_opts(ApexOpts$plotOptions, "bar", file = "R/apex-options.R")
|
|
make_opts(ApexOpts$plotOptions, "heatmap", file = "R/apex-options.R")
|
|
make_opts(ApexOpts$plotOptions, "radialBar", file = "R/apex-options.R")
|
|
make_opts(ApexOpts$plotOptions, "pie", file = "R/apex-options.R")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|