dockViewR

Layout Manager Widget for R and Shiny

https://github.com/cynkra/dockviewr

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.5%) to scientific vocabulary

Keywords

layout panels shiny
Last synced: 6 months ago · JSON representation

Repository

Layout Manager Widget for R and Shiny

Basic Info
Statistics
  • Stars: 26
  • Watchers: 4
  • Forks: 2
  • Open Issues: 9
  • Releases: 2
Topics
layout panels shiny
Created 12 months ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# dockViewR


[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)
[![CRAN status](https://www.r-pkg.org/badges/version/dockViewR)](https://CRAN.R-project.org/package=dockViewR)
[![R-CMD-check](https://github.com/cynkra/dockViewR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/cynkra/dockViewR/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/cynkra/dockViewR/graph/badge.svg)](https://app.codecov.io/gh/cynkra/dockViewR)


The goal of dockViewR is to provide a layout manager for Shiny apps and interactive R documents. It builds on top of [dockview](https://dockview.dev/).

## Installation

The latest version of the dockViewR package can be obtained from [CRAN](https://CRAN.R-project.org/package=dockViewR):

```r
# install.packages("pak")
pak::pak("dockViewR")
```

Or, you can install the development version of dockViewR like so:

``` r
pak::pak("cynkra/dockViewR")
```

## Example

This is a basic example which shows you how spin up a simple dockview app:

```{r, results="asis", echo=FALSE, warning=FALSE, comment = ""}
dockViewR:::print_r_code("examples/demo/app.R")
```

## Contributing

We welcome contributions! If you’d like to help improve `{dockViewR}`, feel free to submit issues, feature requests, or pull requests.

### Knowledge pre-requisites

`{dockViewR}` is an __htmlwidget__, an interactive widget for R, powered by a JS library. To get a minimum starting kit:

- JavaScript for R devs: https://book.javascript-for-r.com/.
- About htmlwidgets: https://www.htmlwidgets.org/develop_intro.html.

### Software pre-requisite

To contribute to this project, you'll need `npm`, `node`, and the R package `{packer}` to compile the JavaScript code. Please follow guide [here](https://packer.john-coene.com/#/guide/installation). When you are in the project, do the following:

```r
pak::pak("packer")
# Restore JavaScript dependencies in package-lock.json (a bit like the renv.lock)
packer::npm_install()
```

The JS code uses [ES6 modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules), meaning that you can define a module in a `srcjs/component.js` script as follows:

```js
export const blabla = () => {
  console.log("Blabla");
}
```

and use it in another script, let's say `./otherscript.js` like so:

```js
// ./otherscript.js
import { blabla } from './components.js'
```

Whenever you are done with changing the JS script, you have to rebuild it:

```r
# Change the code and then rebundle
packer::bundle("development") # For developement mode
packer::bundle() # For production. Defaut!
```

You may as well bundle for `dev` using `packer::bundle_dev()` when in developer mode and when ready for production use `packer::bundle_prod()`. You may also consider `watch()` which watches for changes in the `srcjs` and rebuilds if necessary, equivalent to `⁠npm run watch⁠`.

### Debugging steps

1. Whenever you run an app using `{dockViewR}`, like in `inst/examples/demo`, open the viewer on a
web browser window (preferably Chrome as it is used to illustrate the action in this step, as other browser devtools differ in term of layout).
2. Right-click on the widget and navigate to the `inspect` option on the drop-down menu.
3. At the top, where the tabs are displayed, navigate to the `Sources` tab. Open from the sidepanel `dockviewer/srcjs/widgets/dockview.js` script
![Inspector tabs are opened](inst/images/debug.png). Once the `dockview.js` script is opened on the main panel. You can set a breakpoint on any line number of the script and reload the page.

## Acknowledgments

This package is built on top of the amazing [dockview](https://dockview.dev/) JavaScript library.

Owner

  • Name: cynkra
  • Login: cynkra
  • Kind: organization
  • Email: mail@cynkra.com
  • Location: Zurich, CH

We support your business and the people behind it by helping you pick the right tools, implementing and supporting solutions, training and code review.

GitHub Events

Total
  • Create event: 21
  • Release event: 2
  • Issues event: 37
  • Watch event: 23
  • Delete event: 9
  • Issue comment event: 38
  • Member event: 2
  • Push event: 136
  • Pull request review comment event: 6
  • Pull request review event: 13
  • Pull request event: 28
  • Fork event: 2
Last Year
  • Create event: 21
  • Release event: 2
  • Issues event: 37
  • Watch event: 23
  • Delete event: 9
  • Issue comment event: 38
  • Member event: 2
  • Push event: 136
  • Pull request review comment event: 6
  • Pull request review event: 13
  • Pull request event: 28
  • Fork event: 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 24
  • Total pull requests: 36
  • Average time to close issues: 9 days
  • Average time to close pull requests: 4 days
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 0.54
  • Average comments per pull request: 1.11
  • Merged pull requests: 28
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 24
  • Pull requests: 36
  • Average time to close issues: 9 days
  • Average time to close pull requests: 4 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.54
  • Average comments per pull request: 1.11
  • Merged pull requests: 28
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • DivadNojnarg (21)
  • nelstevens (2)
  • gadenbuie (1)
Pull Request Authors
  • DivadNojnarg (19)
  • nelstevens (16)
  • andreranza (1)
Top Labels
Issue Labels
enhancement (12) cynkra-dev-day (6) bug (3) documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 143 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
cran.r-project.org: dockViewR

Layout Manager Widget for R and 'shiny' Apps

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 143 Last month
Rankings
Dependent packages count: 26.6%
Dependent repos count: 32.7%
Average: 48.6%
Downloads: 86.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v4 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.5.0 composite
  • actions/checkout v4 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
DESCRIPTION cran
  • htmlwidgets * imports
package-lock.json npm
  • 134 dependencies
package.json npm
  • css-loader ^7.1.2 development
  • dockview-core ^3.2.0 development
  • style-loader ^4.0.0 development
  • webpack ^5.98.0 development
  • webpack-cli ^6.0.1 development
  • webpack-merge ^6.0.1 development