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", icon = icon("sort-numeric-asc")), arrange_button("Sort by value (decreasing)", "cardVal", 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"]) ) } ) )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.