mirror of
https://github.com/Ladebeze66/projetcbaollm.git
synced 2025-12-16 22:17:49 +01:00
104 lines
3.9 KiB
Python
104 lines
3.9 KiB
Python
from __future__ import annotations
|
|
|
|
from gradio_client.documentation import document
|
|
|
|
from gradio.blocks import BlockContext
|
|
from gradio.component_meta import ComponentMeta
|
|
from gradio.events import Events
|
|
|
|
|
|
class Tabs(BlockContext, metaclass=ComponentMeta):
|
|
"""
|
|
Tabs is a layout element within Blocks that can contain multiple "Tab" Components.
|
|
"""
|
|
|
|
EVENTS = [Events.change, Events.select]
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
selected: int | str | None = None,
|
|
visible: bool = True,
|
|
elem_id: str | None = None,
|
|
elem_classes: list[str] | str | None = None,
|
|
render: bool = True,
|
|
):
|
|
"""
|
|
Parameters:
|
|
selected: The currently selected tab. Must correspond to an id passed to the one of the child TabItems. Defaults to the first TabItem.
|
|
visible: If False, Tabs will be hidden.
|
|
elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.
|
|
elem_classes: An optional string or list of strings that are assigned as the class of this component in the HTML DOM. Can be used for targeting CSS styles.
|
|
render: If False, this layout will not be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.
|
|
"""
|
|
BlockContext.__init__(
|
|
self,
|
|
visible=visible,
|
|
elem_id=elem_id,
|
|
elem_classes=elem_classes,
|
|
render=render,
|
|
)
|
|
self.selected = selected
|
|
|
|
|
|
@document()
|
|
class Tab(BlockContext, metaclass=ComponentMeta):
|
|
"""
|
|
Tab (or its alias TabItem) is a layout element. Components defined within the Tab will be visible when this tab is selected tab.
|
|
Example:
|
|
with gr.Blocks() as demo:
|
|
with gr.Tab("Lion"):
|
|
gr.Image("lion.jpg")
|
|
gr.Button("New Lion")
|
|
with gr.Tab("Tiger"):
|
|
gr.Image("tiger.jpg")
|
|
gr.Button("New Tiger")
|
|
Guides: controlling-layout
|
|
"""
|
|
|
|
EVENTS = [Events.select]
|
|
|
|
def __init__(
|
|
self,
|
|
label: str | None = None,
|
|
visible: bool = True,
|
|
interactive: bool = True,
|
|
*,
|
|
id: int | str | None = None,
|
|
elem_id: str | None = None,
|
|
elem_classes: list[str] | str | None = None,
|
|
scale: int | None = None,
|
|
render: bool = True,
|
|
):
|
|
"""
|
|
Parameters:
|
|
label: The visual label for the tab
|
|
id: An optional identifier for the tab, required if you wish to control the selected tab from a predict function.
|
|
elem_id: An optional string that is assigned as the id of the <div> containing the contents of the Tab layout. The same string followed by "-button" is attached to the Tab button. Can be used for targeting CSS styles.
|
|
elem_classes: An optional string or list of strings that are assigned as the class of this component in the HTML DOM. Can be used for targeting CSS styles.
|
|
render: If False, this layout will not be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.
|
|
scale: relative size compared to adjacent elements. 1 or greater indicates the Tab will expand in size.
|
|
visible: If False, Tab will be hidden.
|
|
interactive: If False, Tab will not be clickable.
|
|
"""
|
|
BlockContext.__init__(
|
|
self,
|
|
elem_id=elem_id,
|
|
elem_classes=elem_classes,
|
|
render=render,
|
|
)
|
|
self.label = label
|
|
self.id = id
|
|
self.visible = visible
|
|
self.scale = scale
|
|
self.interactive = interactive
|
|
|
|
def get_expected_parent(self) -> type[Tabs]:
|
|
return Tabs
|
|
|
|
def get_block_name(self):
|
|
return "tabitem"
|
|
|
|
|
|
TabItem = Tab
|