Build the Effective Placeholder Registry for ggpaintr
Source:R/paintr-placeholders.R
ptr_merge_placeholders.RdCombine the built-in placeholder definitions with optional custom placeholders. Custom placeholders override built-in placeholders on keyword collision.
Examples
registry <- ptr_merge_placeholders()
all(c("var", "text", "num", "expr", "upload") %in% names(registry))
#> [1] TRUE
date_placeholder <- ptr_define_placeholder(
keyword = "date",
build_ui = function(id, copy, meta, context) {
shiny::dateInput(id, copy$label)
},
resolve_expr = function(value, meta, context) {
if (is.null(value) || identical(value, "")) {
return(ptr_missing_expr())
}
rlang::expr(as.Date(!!value))
}
)
custom_registry <- ptr_merge_placeholders(list(date = date_placeholder))
"date" %in% names(custom_registry)
#> [1] TRUE