"""Autogenerated file: DO NOT EDIT!"""
import typing  # noqa: F401
from dazzler.system import Component, Aspect, UNDEFINED  # noqa: F401


class ViewPort(Component):
    """
    Activate a view with key.

    Standalone or tabbed.

    :CSS:

        ``dazzler-core-view-port``
        - ``view-content``
        - ``dazzler-tab``
        - ``dazzler-tabs``
        - ``tab-active``
    """
    _aspect_keys = []
    _children = []
    active = Aspect(required=True, docstring="The view that is active.")
    views = Aspect(required=True, children=True, docstring="A dictionary of components to render with the active key.")  # noqa: E501
    class_name = Aspect(docstring="The class name of the outer div.")
    style = Aspect(docstring="Style object of the outer div.")
    tabbed = Aspect(docstring="Incorporate tabs before the views.")
    tab_labels = Aspect(docstring="Labels for the tabs otherwise the tab keys will be used.")  # noqa: E501
    vertical_tabs = Aspect(docstring="Make the tabs vertical aligned.")
    rounded_tabs = Aspect(docstring="Round tab style")
    bordered = Aspect(docstring="Add a border around the viewport content (CSS bordered).")  # noqa: E501

    def __init__(
            self,
            active: str,
            views: typing.Dict[str, typing.Union[str, int, float, Component, typing.List[typing.Union[str, int, float, Component]]]],  # noqa: E501
            class_name: typing.Optional[str] = UNDEFINED,
            style: typing.Optional[typing.Dict] = UNDEFINED,
            tabbed: typing.Optional[bool] = UNDEFINED,
            tab_labels: typing.Optional[typing.Dict[str, str]] = UNDEFINED,
            vertical_tabs: typing.Optional[bool] = UNDEFINED,
            rounded_tabs: typing.Optional[bool] = UNDEFINED,
            bordered: typing.Optional[bool] = UNDEFINED,
            identity: str = None
    ):
        """
        :param active: The view that is active.
        :param views: A dictionary of components to render with the active
            key.
        :param class_name: The class name of the outer div.
        :param style: Style object of the outer div.
        :param tabbed: Incorporate tabs before the views.
        :param tab_labels: Labels for the tabs otherwise the tab keys will
            be used.
        :param vertical_tabs: Make the tabs vertical aligned.
        :param rounded_tabs: Round tab style
        :param bordered: Add a border around the viewport content (CSS
            bordered).
        """
        Component.__init__(self, locals(), identity)
