
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
A Dash component wrapping dnd-kit to edit and reorder hierarchical trees with drag & drop.
dash-sortable-tree is a Dash component library.
A Dash component wrapping dnd-kit to edit and reorder hierarchical trees with drag & drop.
pip install dash-sortable-tree
import dash
from dash import html, Input, Output
import dash_sortable_tree
app = dash.Dash(__name__)
# Define your tree structure
items = [
{"id": "1", "parent_id": None, "label": "Home Page"},
{"id": "2", "parent_id": None, "label": "Products"},
{"id": "3", "parent_id": "2", "label": "Electronics"},
{"id": "4", "parent_id": "2", "label": "Clothing"},
{"id": "5", "parent_id": "3", "label": "Smartphones"},
{"id": "6", "parent_id": "3", "label": "Laptops"},
]
app.layout = html.Div([
html.H1("My Tree Editor"),
dash_sortable_tree.DndTreeEditor(
id="tree-editor",
items=items,
collapsible=True,
removable=False,
indicator=True,
indentationWidth=30
),
html.Div(id="selected-item")
])
@app.callback(
Output("selected-item", "children"),
Input("tree-editor", "selectedId")
)
def display_selected(selected_id):
if selected_id:
return f"Selected: {selected_id}"
return "No selection"
if __name__ == "__main__":
app.run(debug=True)
{"id": "...", "parent_id": "...", "label": "..."}
Get started with:
python usage.py
See CONTRIBUTING.md
If you have selected install_dependencies during the prompt, you can skip this part.
Install npm packages
$ npm install
Create a virtual env and activate.
$ virtualenv venv
$ . venv/bin/activate
Note: venv\Scripts\activate for windows
Install python packages required to build components.
$ pip install -r requirements.txt
Install the python packages for testing (optional)
$ pip install -r tests/requirements.txt
src/lib/components/DndTreeEditor.react.js
.src/demo
and you will import your example component code into your demo app.$ npm run build
usage.py
sample dash app:
$ python usage.py
tests/test_usage.py
, it will load usage.py
and you can then automate interactions with selenium.$ pytest tests
.dash_sortable_tree
).
MANIFEST.in
so that they get properly included when you're ready to publish your component._css_dist
dict in dash_sortable_tree/__init__.py
so dash will serve them automatically when the component suite is requested.Build your code:
$ npm run build
Create a Python distribution
$ python setup.py sdist bdist_wheel
This will create source and wheel distribution in the generated the dist/
folder.
See PyPA
for more information.
Test your tarball by copying it into a new environment and installing it locally:
$ pip install dash_sortable_tree-0.0.5.tar.gz
If it works, then you can publish the component to NPM and PyPI:
$ twine upload dist/*
$ rm -rf dist
publish_on_npm
)
$ npm publish
Publishing your component to NPM will make the JavaScript bundles available on the unpkg CDN. By default, Dash serves the component library's CSS and JS locally, but if you choose to publish the package to NPM you can set serve_locally
to False
and you may see faster load times.Share your component with the community! https://community.plotly.com/c/dash
FAQs
A Dash component wrapping dnd-kit to edit and reorder hierarchical trees with drag & drop.
We found that dash-sortable-tree demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.