A collection of reusable components and tools for building genomic data browsers.
broadinstitute / gnomad-browser-toolkit Goto Github PK
View Code? Open in Web Editor NEWComponents for building genomic data browsers
License: MIT License
Components for building genomic data browsers
License: MIT License
RegionViewer currently requires a feature_type
property on regions.
However, it isn't used by RegionViewer.
Remove the requirement and implement padding by extending passed regions instead of adding additional padding regions. Better yet, as long as we're making a breaking change, remove padding entirely from RegionViewer and leave that to consumers.
Currently, identifiers regular expressions use a Unicode property escape if the Unicode flag is supported by the browser.
However, the Unicode flag is more broadly supported than Unicode property escapes.
We should test if Unicode property escapes are supported.
Currently, the gnomAD Browser Toolkit (GBTK) package is written in JavaScript.
It would be preferable to migrate this package to TypeScript to be in line with what is happening with the gnomAD browser, and to gain the benefits of static typing.
A few examples import data from an unpublished "resources" folder. These should be replaced with fixtures checked into the repository, randomly generated data, or data fetched from the gnomAD API.
Once that is done, configuration related to resources can be removed from .eslintrc.js, babel.config.js, and .gitignore.
@types/react
in the top-level package.json
and confirm that type checking still succeeds.#48 made breaking changes to region-viewer. When that is released, all track packages will also have to be updated to allow region-viewer version 1 or 2 in peer dependencies.
A few components in the ui package have dependencies that use deprecated lifecycle methods.
Combobox and Searchbox use react-autocomplete. react-autocomplete is no longer maintained (the repository is archived) and will need to be replaced.
Tabs uses react-aria-tabpanel. react-aria-tabpanel is seeking new maintainers but has not been updated in the past year.
Currently, the TooltipAnchor component attaches a container element to the body and render its tooltip into that container.
gnomad-browser-toolkit/packages/ui/src/tooltip/TooltipAnchor.js
Lines 23 to 34 in 6ed158a
This affects performance when rendering many elements with tooltips, such as some plots. Preferably, all tooltip anchors could share one container.
Unicode property escapes are not supported in IE 11.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
Some styled components take a width
prop.
This can result in a large number of classes being generated (one for every value of width as the window is resized). Instead, these should use inline styles.
OrderedList inherits list-style-type: disc
from List. It should use decimal
instead.
gnomad-browser-toolkit/packages/ui/src/List.js
Lines 3 to 7 in ec4f9da
These styles should be left up to the consumer.
gnomad-browser-toolkit/packages/region-viewer/src/RegionViewer.js
Lines 13 to 14 in 5d74d41
Placeholder issue created during browser meeting, will be closed as duplicate on more thorough inspection if needed.
The gnomad-browser
has migrated to TypeScript. It makes sense for the Toolkit to follow, and to add types for all of its components in the ui
package, so that any Frontend application using these ui components can use this packages types.
So that documentation for each package shows up on its NPM page.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.