deck.gl
deck.gl copied to clipboard
Tracker: Widgets
Goal: Leverage the new widget support in deck.gl. Increase the catalog of pre-built widgets, improve the usability of the widget system. Support both the geospatial and info vis domains
v9.3+
- [ ]
GimbalWidget- handle more viewport types - [ ]
CompassWidget- handle more viewport types - [ ]
TimelineWidget- more features, better styling - [ ]
InfoWidget- Decide on if and how to align withgetTooltip()
v9.2 Punch List
- [ ] Graduate
_ResetViewWidget- - [ ] Graduate
_ScreenshotWidget- - [ ] Graduate
_ThemeWidget- - [ ] Graduate
_ScaleWidget- - [ ] Graduate
_TimelineWidget- Address feedback in https://github.com/visgl/deck.gl/pull/9587 - [ ] Graduate
_SplitterWidget- Address issues in https://github.com/visgl/deck.gl/pull/9565 - [ ] Graduate
_GeolocateWidget- [ ] Add option where the geocoder is just a small button and clicking on it opens the text field. Right now it permanently occupies a lot of space, not really fitting in to a column of widgets on the side.
- [ ] Graduate
_InfoWidget-- [ ] support onHover
- [ ] Define semantics of popups when using multiple viewports. @chrisgervang
- [ ] Custom widget developers guide @chrisgervang #9304
- [ ] use CSS variables and add theming for these. --popup-background and --popup-padding @chrisgervang
- [x] Add React Wrappers + Doc updates for new widgets https://github.com/visgl/deck.gl/pull/9589
- [x] Add new widgets to the python sub-module
- [x] Interactive examples or at least screenshots on each widget page
- [x] Add
InfoWidget@felixpalmer - [x] Modify widget example to include InfoWidget @felixpalmer
- [x] Auto reposition the popup so it is not covered when at the edges of the canvas @ibgreen
- [x] Add minOffset prop to keep the popup from "touching" the edge. @ibgreen
- [x] Add a small "arrow" / "tip" extrusion to point to the selected point @ibgreen
- [x] Ensure the improved positioning is recalculated when panning the view @ibgreen
Simple Widget Library Wish List
- [x]
ZoomWidget - [x]
FullScreenWidget - [x]
ScreenshotWidgethttps://github.com/visgl/deck.gl/pull/9454 - [x]
CompassWidget(geospatial) - [x]
ResetViewWidget(infovis: plotly style reset view ) https://github.com/visgl/deck.gl/pull/9478 - [x]
ThemeWidgethttps://github.com/visgl/deck.gl/pull/9471 - experimental version landed - [x]
LoadingWidgethttps://github.com/visgl/deck.gl/pull/9485 - experimental version landed - [x]
ScaleWidget(geospatial) https://github.com/visgl/deck.gl/pull/9491 - experimental_ScaleWidgetlanded - [x]
GeocoderWidget(geospatial) https://github.com/visgl/deck.gl/pull/9488 - experimentalGeolocateWidgetlanded - [x]
GimbalWidget
"Advanced" Widgets Wish List
- [x] "SplitterWidget" - Landed but address issues in https://github.com/visgl/deck.gl/pull/9565
- [ ]
PopupWidgethttps://github.com/visgl/deck.gl/pull/8958 - experimental_InfoWidgetlanded @felixpalmer - [ ]
TooltipWidget- (exists internally, expose?, deduplicate?) - [ ]
TimelineWidget**- even the most simple playback would be very valuable @chrisgervang - [ ] "SelectRectToZoomWidget" (infovis: Rectangular selection to zoom - plotly style zoom )
- [ ] "SelectRectToSelectRowsWidget" - (infovis: Rectangular selection, lasso selection - plotly style selection widget)
- [ ] AI Assistant Widget https://github.com/visgl/deck.gl/pull/9428
- [ ]
EditModeWidgets- editable-layer controls as widgets - [ ] Data Widgets (CARTO proposal) https://github.com/visgl/deck.gl/issues/8057
Components Wish List
- [ ] IconMenu
- [ ] IconToggle
Widget System Features
- [ ]
position: 'top-center'| 'bottom-center' | 'center'? (E.g.often a permanent geocoder text field would be placed at top-center of the map.) - [x] Widgets module RFC, core plumbing https://github.com/visgl/deck.gl/issues/7946
- [x] JSON support for widgets https://github.com/visgl/deck.gl/pull/9314
- [x] Pydeck support for widgets https://github.com/visgl/deck.gl/pull/9342
- [x] React wrappers widgets
Widget System Docs
General deck improvements that would benefit Widgets
The following improvements to deck.gl could benefit the widget system or enable useful widgets
- [ ] Add a declarative template system for creating tooltip / popup HTML. RFC in #9551
- [ ] Allow views to set background color - Without it, ScreenshotWidget images are not as expected.
- [ ] Selection extension module? - Needed for "plotly style" selection widget?
PopupWidget tracker
A PoC was landed as _InfoWidget as a placeholder until we have a better solution, it attracted a lot of feedback: Given the amount of feedback, we may want to align on requirements / assumptions:
- Click?
- Hover?
- Programmatic creations (multiple popups?)?
Misc Feedback
@Pessimistress A "real" popup does the following
- [x] control placement relative to the anchor, or automatically positioned to fit in the map container; @ibgreen
- [x] have a tip that points to the anchor, like that from Google Maps or Maplibre; @ibgreen
- [ ] have a close button and/or
- [x] closes when clicked outside; @felixpalmer
- [ ] can render multiple instances on map with the correct z order;
Tooltip tip/arrow