Comments (2)
nice!
from vuer.
I thought it would be fun to use a Vuetify v-select
component to control crosstalk. Here is my first approach.
library(crosstalk)
library(plotly)
library(vueR)
library(htmltools)
mh <- mtcars %>% highlight_key(~cyl)
pl <- mh %>%
plot_ly(
x = ~wt, y = ~mpg, text = ~cyl, mode = "markers+text",
textposition = "top", hoverinfo = "x+y"
) %>%
highlight(on = "plotly_hover", off = "plotly_doubleclick")
browsable(
tagList(
vueR::html_dependency_vue(minified = FALSE),
tags$head(
tags$link(href="https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.min.css", rel="stylesheet"),
tags$link( href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900", rel="stylesheet"),
tags$link(href="https://cdn.jsdelivr.net/npm/@mdi/[email protected]/css/materialdesignicons.min.css", rel="stylesheet"),
tags$script(src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.js")
),
tag(
"v-app",
list(
id = "app",
tags$div(HTML("<v-select :items = 'cyl' @change = 'updateSelected' v-model= 'selected' multiple chips/>")),
pl,
tags$h3("Filter Handle"),
"{{ filter.filteredKeys ? filter.filteredKeys : 'nothing filtered' }}",
tags$h3("Selection Handle"),
"{{ selection.value ? selection.value : 'nothing selected' }}"
)
),
tags$script(HTML(
sprintf(
"
const app = new Vue({
el: '#app',
vuetify: new Vuetify(),
data() {
return {
filter: new crosstalk.FilterHandle('%1$s'),
selection: new crosstalk.SelectionHandle('%1$s'),
cyl: %2$s.map(d => d.toString()) // crosstalk keys are strings
}
},
computed: {
selected: function() {return this.selection.value}
},
methods: {
updateSelected: function(val) {
this.selection.set(Array.isArray(val) ? val : [val])
}
}
})
",
mh$groupName(),
jsonlite::toJSON(sort(unique(mh$data()$cyl)),auto_unbox=TRUE)
)
))
)
)
from vuer.
Related Issues (10)
- Error: path for html_dependency not provided HOT 6
- vue 3 HOT 7
- vue htmlwidget container HOT 6
- How to link vueR with leaflet? HOT 7
- vuejs clipboard integration
- vue3 reactive input values HOT 6
- Shiny and vuex
- vue Shiny input helper / template HOT 1
- Change installation instructions and other URLs to new Github Org HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vuer.