Code for this example is available here.

```{css, echo=FALSE} .main-container { max-width: 95% !important; }

```r
knitr::opts_chunk$set(echo = FALSE)
library(shufflecards)
library(shiny)
library(crosstalk)
library(billboarder)
deck <- expand.grid(
  suits = c("hearts", "spades", "diamonds", "clubs"),
  values = c("a", 2:10, "j", "q", "k")
)
deck$order <- as.numeric(deck$values)
deck$color <- ifelse(deck$suits %in% c("hearts", "diamonds"), "Red", "Black")
deck$key <- paste(deck$suits, deck$values, sep = "_")
shared_deck <- SharedData$new(deck, key = deck$key)
rmd_group_buttons(
  shuffleId = "grid", label = "Click to sort cards !",
  arrange_button("Sort by value", "cardVal", numeric = TRUE, icon = icon("sort-numeric-asc")),
  arrange_button("Sort by value (decreasing)", "cardVal", numeric = TRUE, desc = TRUE, icon = icon("sort-numeric-desc")),
  arrange_button("Sort by suits", "cardSuits", icon = icon("sort-alpha-asc")),
  arrange_button("Random!", "random", icon = icon("random"))
)
bscols(widths = c(4, 4, 4),
  filter_checkbox("suits", "Suits:", shared_deck, ~suits, inline = TRUE),
  filter_slider("value", "Value:", shared_deck, ~order, width = "90%"),
  filter_select("color", "Color:", shared_deck, ~color)
)
shuffle_widget(
  shuffleId = "grid",
  shared_data = shared_deck,
  no_card = "No card to display!",
  card_list = lapply(
    X = seq_len(nrow(deck)),
    FUN = function(i) {
      shuffle_card(
        key = deck[i, "key"], # for filtering
        cardVal = deck[i, "order"], # for sorting
        cardSuits = deck[i, "suits"], # for sorting
        playing_card(deck[i, "suits"], deck[i, "values"])
      )
    }
  )
)


dreamRs/shufflecards documentation built on Dec. 4, 2019, 4:44 a.m.