#' Element Row Group Location
#'
#'
#' @param location Location of the row group labels. Specifying 'indented'
#' combines all group and label variables into a single column with each
#' sub-group indented under its parent. 'spanning' and 'column' retain the
#' highest level group variable in its own column and combine all remaining
#' group and label variables into a single column with sub-groups indented. The
#' highest level group column will either be printed as a spanning header or in
#' its own column in the gt. The 'noprint' option allows the user to suppress
#' group values from being printed. Finally, the 'gtdefault' option allows
#' users to use the 'gt' defaults for styling multiple group columns.
#' @param indent A string of the number of spaces you want to indent
#'
#' @seealso [row_grp_plan()] for more details on how to group row group
#' structures, [row_grp_structure()] for more details on how to specify row
#' group structures, [element_block()] for more details on how to specify
#' spacing between each group.
#'
#' \href{https://gsk-biostatistics.github.io/tfrmt/articles/row_grp_plan.html}{Link
#' to related article}
#'
#' @returns element_row_grp_loc object
#' @export
#' @examples
#'
#' tfrmt_spec <- tfrmt(
#' group = c(grp1, grp2),
#' label = label,
#' param = param,
#' value = value,
#' column = column,
#' row_grp_plan = row_grp_plan(label_loc = element_row_grp_loc(location = "noprint")),
#' body_plan = body_plan(
#' frmt_structure(group_val = ".default", label_val = ".default", frmt("xx"))
#' )
#' )
#'
#' @section Images: Here are some example outputs:
#'
#' \if{html}{\out{ `r "<img src=\"https://raw.githubusercontent.com/GSK-Biostatistics/tfrmt/main/images/tfrmt-row_group_plan-cropped.jpg\" alt=\"Examples showing the difference between the row group locations\" style=\"width:100\\%;\">"` }}
#'
element_row_grp_loc <- function(location = c("indented", "spanning", "column", "noprint", "gtdefault"),
indent = " "){
location = match.arg(location)
structure(
list(location = location, indent = indent),
class = c("element_row_grp_loc", "element")
)
}
is_element_row_grp_loc <- function(x){
inherits(x, "element_row_grp_loc")
}
#' Element block
#'
#' @param post_space Values to show in a new line created after the group block
#' @param fill Whether to recycle the value of `post_space` to match width of the data. Defaults to `TRUE`
#'
#' @return element block object
#'
#' @seealso [row_grp_plan()] for more details on how to group row group
#' structures, [row_grp_structure()] for more details on how to specify row group
#' structures, [element_row_grp_loc()] for more details on how to
#' specify whether row group titles span the entire table or collapse.
#'
#' @export
#' @examples
#'
#' tfrmt_spec <- tfrmt(
#' group = grp1,
#' label = label,
#' param = param,
#' value = value,
#' column = column,
#' row_grp_plan = row_grp_plan(
#' row_grp_structure(group_val = ".default", element_block(post_space = " "))
#' ),
#' body_plan = body_plan(
#' frmt_structure(group_val = ".default", label_val = ".default", frmt("xx"))
#' )
#' )
element_block <- function(post_space = c(NULL, " ", "-"),
fill = TRUE){
structure(
list(post_space = post_space, fill = fill),
class = c("element_block", "element")
)
}
is_element_block <- function(x){
inherits(x, "element_block")
}
element_stub <- function(collapse_ord = vars(), collapse_into = vars(), remove_dups = NULL){
structure(
list(collapse_ord = collapse_ord, collapse_into = collapse_into, remove_dups = remove_dups),
class = c("element_stub", "element")
)
}
#col_labels = element_label(newCol = "Hello World", wrap_txt = 30)
element_label <- function(..., wrap_txt = 30){
structure(
list(...) %>%
c(wrap_txt = wrap_txt),
class = c("element_label", "element")
)
}
is_element_label <- function(x){
inherits(x, "element_label")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.