Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/daqana/dqshiny
Enhance Shiny Apps with Customizable Modules
https://github.com/daqana/dqshiny
Last synced: 9 days ago
JSON representation
Enhance Shiny Apps with Customizable Modules
- Host: GitHub
- URL: https://github.com/daqana/dqshiny
- Owner: daqana
- Created: 2018-10-05T20:54:22.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-08-30T15:42:38.000Z (over 4 years ago)
- Last Synced: 2024-08-13T07:15:40.912Z (4 months ago)
- Language: R
- Size: 940 KB
- Stars: 60
- Watchers: 7
- Forks: 10
- Open Issues: 10
-
Metadata Files:
- Readme: README.Rmd
Awesome Lists containing this project
- jimsghstars - daqana/dqshiny - Enhance Shiny Apps with Customizable Modules (R)
README
---
output: github_document
---[![Travis build status](https://api.travis-ci.org/daqana/dqshiny.svg?branch=master)](https://travis-ci.org/daqana/dqshiny)
[![Codecov test coverage](https://codecov.io/gh/daqana/dqshiny/branch/master/graph/badge.svg)](https://codecov.io/gh/daqana/dqshiny?branch=master)
[![CRAN status](https://www.r-pkg.org/badges/version/dqshiny)](https://cran.r-project.org/package=dqshiny)
[![Downloads](http://cranlogs.r-pkg.org/badges/dqshiny?color=brightgreen)](https://www.r-pkg.org:443/pkg/dqshiny)```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# dqshinyThe goal of dqshiny is to provide highly customizable modules to enhance your
shiny apps. Includes layout independent collapsable boxes and value boxes, a
very fast autocomplete input, rhandsontable extensions for filtering and paging
and much more.## Installation
`dqshiny` will be available on CRAN again soon, for now you can install the latest
development version using:``` r
remotes::install_github("daqana/dqshiny")
```## Example
There's a package demo `dqshiny-base-features` demonstrating some functionalities.
Or you can start with this short example to see some simple boxes in action:``` r
library(shiny)
library(dqshiny)
shinyApp(
ui = fluidPage(
fluidRow(
dq_box(
title = "Say Hello to my children", collapsed = TRUE, fill = FALSE,
dq_infobox("Hello", 2, "World", icon("hashtag"), bg_color = "black", color = "#D00"),
dq_box(title = "Box in the box", bg_color = "red", width = 8, dq_space())
)
)
),
server = function(input, output) {}
)
```If you have a bigger amount of selectable choices and still don't want to use
textInputs you may have a look at this:``` r
library(shiny)
library(dqshiny)
# create 100k random words
opts <- sapply(1:100000, function(i) paste0(sample(letters, 7), collapse=""))
shinyApp(
ui = fluidPage(
fluidRow(
column(3,
autocomplete_input("auto1", "Unnamed:", opts, max_options = 1000),
autocomplete_input("auto2", "Named:", max_options = 1000,
structure(opts, names = opts[order(opts)]))
# feel free to test this with select... and may get yourself a coffee
# , selectInput("sel", "Select:", opts)
), column(3,
tags$label("Value:"), verbatimTextOutput("val1", placeholder = TRUE),
tags$label("Value:"), verbatimTextOutput("val2", placeholder = TRUE)
)
)
),
server = function(input, output) {
output$val1 <- renderText(as.character(input$auto1))
output$val2 <- renderText(as.character(input$auto2))
}
)
```If you ever encountered the wish to have a paged or filtered rHandsontable,
this example could be quite interesting:``` r
library(shiny)
library(dqshiny)
shinyApp(
ui = fluidPage(dq_handsontable_output("myTable", 9L)),
server = function(input, output, session) {
hw <- c("Hello", "my", "funny", "world!")
data <- data.frame(A = rep(hw, 500L), B = hw[c(2:4, 1L)], C = 1:500, D = 500:1)
dq_render_handsontable("myTable", data,
filters = c("Sel", "Text", NA, "Auto"), sorting = TRUE,
page_size = c(17L, 5L, 500L, 1000L),
col_param = list(list(col = 3L, format = "0.00")),
cell_param = list(list(row = 2:9, col = 2L, readOnly = TRUE))
)
}
)
```