Skip to main content

Streamlit Component for ANT Tree

Project description

Streamlit ANT Tree Select Component

The Streamlit ANT Tree Select Component adds a hierarchical dropdown selector to Streamlit, based on Ant Design Tree Select. It supports nested selections, multiple selection, and search functionality.

Live Demo

Installation

Install with pip:

pip install st-ant-tree

Usage

The component is initialized by calling st_ant_tree. It returns a list of selected values.

from st_ant_tree import st_ant_tree

# Define tree data
tree_data = [
    {
        "value": "parent_1",
        "title": "Parent 1",
        "children": [
            {"value": "child_1", "title": "Child 1"},
            {"value": "child_2", "title": "Child 2"},
        ],
    },
    {"value": "parent_2", "title": "Parent 2"},
]

# Use the component
selected_values = st_ant_tree(
    treeData=tree_data,
    treeCheckable=True,
    allowClear=True
)

st.write(f"Selected values: {selected_values}")

Tree Data Structure

The tree data should be a list of dictionaries, where each dictionary represents a tree node. Keys include:

  • value (required): The value returned when the node is selected.
  • title (required): The label shown in the dropdown (can include HTML).
  • children (optional): A list of child nodes (nested structure).
  • disabled (optional): Disables the node.

Default Selection

To set a default selection, use the defaultValue parameter with a list of node values.

# Define tree data
tree_data = [
    {
        "value": "parent_1",
        "title": "Parent 1",
        "children": [
            {"value": "child_1", "title": "Child 1"},
            {"value": "child_2", "title": "Child 2"},
        ],
    },
    {"value": "parent_2", "title": "Parent 2"},
]

# Set default selection
selected_values = st_ant_tree(
    treeData=tree_data,
    defaultValue=["child_1"],  # List of default selected values
    treeCheckable=True
)

Parameters

Key parameters and their purpose:

  • treeData (list): The hierarchical data for the dropdown.
  • defaultValue (list): Preselected values.
  • allowClear (bool): Enables clearing selected values.
  • treeCheckable (bool): Adds checkboxes for multi-select.
  • showSearch (bool): Enables search functionality.
  • max_height (int): Maximum height of the dropdown.
  • width_dropdown (str): Width of the dropdown (e.g., "90%").
  • placeholder (str): Placeholder text for the selector.
  • treeLine (bool): Displays lines connecting tree nodes.

Example: Searchable Dropdown

# Define tree data
tree_data = [
    {
        "value": "parent_1",
        "title": "Parent 1",
        "children": [
            {"value": "child_1", "title": "Child 1"},
            {"value": "child_2", "title": "Child 2"},
        ],
    },
    {"value": "parent_2", "title": "Parent 2"},
]

# Create a searchable dropdown
selected_values = st_ant_tree(
    treeData=tree_data,
    showSearch=True,
    placeholder="Search and select",
    treeCheckable=True
)

st.write(f"Selected values: {selected_values}")

Features

  • Nested Selections: Supports parent-child relationships in dropdowns.
  • Multiple Selection: Enable with treeCheckable=True.
  • Search: Matches input with both value and title of nodes.
  • Custom Styling: Use HTML in title or modify dropdown dimensions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

st_ant_tree-0.0.15-py3-none-any.whl (3.1 MB view details)

Uploaded Python 3

File details

Details for the file st_ant_tree-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: st_ant_tree-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for st_ant_tree-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 bf294e1b468f1de7c400cdb74c9f3fea4c3512d7ecac378a81d014fed4b61366
MD5 09fd763dbec8ad1eadf4c45ce9bddc80
BLAKE2b-256 8fc2269c39abc53dc7b7abf6cee0b4caaa5222d1f9760cdf5ca0746cdfb691fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page