a
    AdC	                     @   s   d dl Zd dlmZmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
ejeejjdedZejeejjdedZejeejjde	dZejeejjde
dZe  dS )    N)scripts
ui_tempdirpatchesc                 C   s8   d|    g| jpg | _t| ddr4| jd dS )zu
    this adds gradio-* to the component for css styling (ie gradio-button to gr.Button), as well as some others
    zgradio-multiselectFN)get_block_nameelem_classesgetattrappend)comp r   @/var/www/html/stable-diffusion-webui/modules/gradio_extensons.pyadd_classes_to_gradio_component   s    r   c                 O   s   | dd | _tjd ur,tjj| fi | tjj| fi | t| g|R i |}t|  tjj	| fi | tjd urtjj
| fi | |S )Ntooltip)popwebui_tooltipr   scripts_currentbefore_componentscript_callbacksbefore_component_callbackoriginal_IOComponent_initr   after_component_callbackafter_componentselfargskwargsresr   r   r   IOComponent_init   s    

r   c                 C   s0   t | }t| dd }|r ||d< |dd  |S )Nr   example_inputs)original_Block_get_configr   r   )r   configr   r   r   r   Block_get_config%   s    r!   c                 O   s"   t | g|R i |}t|  |S )N)original_BlockContext_initr   r   r   r   r   BlockContext_init1   s    r#   c                 O   s<   t | g|R i |}|d D ]}d|v rdg i|d< q|S )N
componentsr   
serialized)original_Blocks_get_config_file)r   r   r   r    Zcomp_configr   r   r   Blocks_get_config_file9   s
    r'   __init__)objfieldreplacement
get_configget_config_file)gradiogrmodulesr   r   r   r   r   r!   r#   r'   patch__name__r$   IOComponentr   blocksBlockr   BlockContextr"   Blocksr&   install_ui_tempdir_overrider   r   r   r   <module>   s   
