o
    h                     @  sl   d dl mZ d dlmZmZ d dlmZ d dlm	Z	 er"d dl
mZ G dd dZ						ddddZdS )    )annotations)TYPE_CHECKINGcast)IFrame)gather_metrics)DeltaGeneratorc                   @  sN   e Zd Zed			ddddZed			ddddZedddZdS )IframeMixin_iframeNFsrcstrwidth
int | Noneheight	scrollingboolreturnr   c                 C  &   t  }t|||||d | jd|S )au  Load a remote URL in an iframe.

        To use this function, import it from the ``streamlit.components.v1``
        module.

        .. warning::
            Using ``st.components.v1.iframe`` directly (instead of importing
            its module) is deprecated and will be disallowed in a later version.

        Parameters
        ----------
        src : str
            The URL of the page to embed.

        width : int
            The width of the iframe in CSS pixels. By default, this is the
            app's default element width.

        height : int
            The height of the frame in CSS pixels. By default, this is ``150``.

        scrolling : bool
            Whether to allow scrolling in the iframe. If this ``False``
            (default), Streamlit crops any content larger than the iframe and
            does not show a scrollbar. If this is ``True``, Streamlit shows a
            scrollbar when the content is larger than the iframe.

        Example
        -------

        >>> import streamlit.components.v1 as components
        >>>
        >>> components.iframe("https://example.com", height=500)

        )r
   r   r   r   iframeIFrameProtomarshalldg_enqueue)selfr
   r   r   r   iframe_proto r   M/var/www/vscode/kcb/lib/python3.10/site-packages/streamlit/elements/iframe.pyr	      s   +zIframeMixin._iframe_htmlhtmlc                 C  r   )a6  Display an HTML string in an iframe.

        To use this function, import it from the ``streamlit.components.v1``
        module.

        If you want to insert HTML text into your app without an iframe, try
        ``st.html`` instead.

        .. warning::
            Using ``st.components.v1.html`` directly (instead of importing
            its module) is deprecated and will be disallowed in a later version.

        Parameters
        ----------
        html : str
            The HTML string to embed in the iframe.

        width : int
            The width of the iframe in CSS pixels. By default, this is the
            app's default element width.

        height : int
            The height of the frame in CSS pixels. By default, this is ``150``.

        scrolling : bool
            Whether to allow scrolling in the iframe. If this ``False``
            (default), Streamlit crops any content larger than the iframe and
            does not show a scrollbar. If this is ``True``, Streamlit shows a
            scrollbar when the content is larger than the iframe.

        Example
        -------

        >>> import streamlit.components.v1 as components
        >>>
        >>> components.html(
        >>>     "<p><span style='text-decoration: line-through double red;'>Oops</span>!</p>"
        >>> )

        )srcdocr   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   P   s   0zIframeMixin._htmlc                 C  s
   t d| S )zGet our DeltaGenerator.r   )r   )r   r   r   r   r      s   
zIframeMixin.dg)NNF)
r
   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   )__name__
__module____qualname__r   r	   r   propertyr   r   r   r   r   r      s    49r   NFprotor   r
   
str | Noner   r   r   r   r   r   r   Nonec                 C  sP   |dur|| _ |dur|| _|dur|| _d| _|dur || _nd| _|| _dS )a  Marshalls data into an IFrame proto.

    These parameters correspond directly to <iframe> attributes, which are
    described in more detail at
    https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe.

    Parameters
    ----------
    proto : IFrame protobuf
        The protobuf object to marshall data into.
    src : str
        The URL of the page to embed.
    srcdoc : str
        Inline HTML to embed. Overrides src.
    width : int
        The width of the frame in CSS pixels. Defaults to the app's
        default element width.
    height : int
        The height of the frame in CSS pixels. Defaults to 150.
    scrolling : bool
        If true, show a scrollbar when the content is larger than the iframe.
        Otherwise, never show a scrollbar.

    NT   )r
   r   r   	has_widthr   r   )r$   r
   r   r   r   r   r   r   r   r      s    
r   )NNNNF)r$   r   r
   r%   r   r%   r   r   r   r   r   r   r   r&   )
__future__r   typingr   r   streamlit.proto.IFrame_pb2r   r   streamlit.runtime.metrics_utilr   streamlit.delta_generatorr   r   r   r   r   r   r   <module>   s   x