webviz_core_components is a Dash component library for use in webviz. A storybook showing all available components is available at https://equinor.github.io/webviz-core-components/storybook-static.
You can quickly get started with:
- Run
pip install webviz-core-components - Run
python usage.py - Visit http://localhost:8050 in your web browser
If you want to build and develop yourself, you should fork + clone the repository, and then:
- Install npm packages.
npm ci --ignore-scripts --prefix ./react - Install python packages required to build components.
pip install .[dependencies] pip install dash[dev] - Install the python packages for testing.
pip install .[tests]
-
Have a look at other components to see how the directory and file structure looks like.
-
The demo app is in
react/src/demoand is where you will import an example of your component. To start the existing demo app, runnpm start --prefix ./react. -
To test your code in a Python environment:
- Build your code
npm run build --prefix ./react - Install the Python pacakge in development mode (if not already done and
assuming you are using a virtual environment):
pip install -e . - Create a new example in
examples/which uses your new component.
- Build your code
-
Write tests for your component.
- Python
- Python tests exist in
tests/. Take a look at them to see how to write tests using the Dash test framework. - Run the tests with
pytest tests.
- Python tests exist in
- JavaScript
- JavaScript tests exist in
react/tests. Take a look at them to see how to write tests using the Jest test framework.
- JavaScript tests exist in
- Python
-
Add custom styles to your component by putting your custom CSS files into your distribution folder (
webviz_core_components).- Make sure that they are referenced in
MANIFEST.inso that they get properly included when you're ready to publish your component. - Make sure the stylesheets are added to the
_css_distdict inwebviz_core_components/__init__.pyso dash will serve them automatically when the component suite is requested. - You can also include stylesheets directly in your component by adding the stylesheet to your component's directory and importing it via
import "./<ComponentName>.css. Make sure that the class names in your stylesheet are starting with your component's name and two underscores:.MyComponent__MyClassName.
- Make sure that they are referenced in