72 lines
2.6 KiB
Python
72 lines
2.6 KiB
Python
#!/usr/bin/env python
|
|
# _*_coding:utf-8_*_
|
|
|
|
"""
|
|
@Time : 2023/7/7 10:04
|
|
@Author : ji hao ran
|
|
@File : transfer.py
|
|
@Project : StreamlitAntdComponents
|
|
@Software : PyCharm
|
|
"""
|
|
from ..utils import *
|
|
|
|
|
|
def transfer(
|
|
items: List[str] = None,
|
|
index: List[int] = None,
|
|
format_func: Union[Formatter, Callable] = None,
|
|
label: str = None,
|
|
description: str = None,
|
|
titles: List[str] = None,
|
|
align: Align = 'start',
|
|
color: Union[MantineColor, str] = None,
|
|
search: bool = False,
|
|
pagination: bool = False,
|
|
oneway: bool = False,
|
|
disabled: bool = False,
|
|
reload: Union[bool, str] = False,
|
|
width: int = None,
|
|
height: int = None,
|
|
use_container_width=False,
|
|
return_index=False,
|
|
on_change: Callable = None,
|
|
args: Tuple[Any, ...] = None,
|
|
kwargs: Dict[str, Any] = None,
|
|
key=None
|
|
) -> List[Union[str, int]]:
|
|
"""antd design transfer https://ant.design/components/transfer
|
|
|
|
:param items: transfer source data
|
|
:param index: transfer default target data index
|
|
:param format_func: label formatter function,receive str and return str
|
|
:param label: transfer label,support str and markdown str
|
|
:param description: transfer description,support str and markdown str
|
|
:param titles: transfer left and right box title,[left,right]
|
|
:param align: transfer align
|
|
:param color: transfer color,default streamlit primary color,support mantine color, hex and rgb color
|
|
:param search: show search bar
|
|
:param pagination: show pagination
|
|
:param oneway: oneway mode
|
|
:param disabled: disable transfer
|
|
:param reload: reload button,set str to rename button label
|
|
:param width: width in px
|
|
:param height: height in px
|
|
:param use_container_width: makes the transfer stretch its width to match the parent container
|
|
:param return_index: return item index
|
|
:param on_change: item change callback
|
|
:param args: callback args
|
|
:param kwargs: callback kwargs
|
|
:param key: component unique identifier
|
|
:return: selected transfer label or index
|
|
"""
|
|
# register callback
|
|
register(key, on_change, args, kwargs)
|
|
# parse items
|
|
items, kv = ParseItems(items, format_func).transfer()
|
|
# component params
|
|
kw = update_kw(locals(), items=items)
|
|
# component default
|
|
default = get_default(index, return_index, kv)
|
|
# pass component id and params to frontend
|
|
return component(id=get_func_name(), kw=kw, default=default, key=key)
|