
    Be                     2    d Z ddlmZ dZd Zd Zd Zd ZdS )	zf
This module contains functionality to make any Panel component look
like it is loading and disabled.
   )configz
pn-loadingc                 b      j         s	| _         d S  fd|D             } j         |z    _         d S )Nc                 &    g | ]}|j         v|S  css_classes).0	css_classitems     0lib/python3.11/site-packages/panel/io/loading.py
<listcomp>z$_add_css_classes.<locals>.<listcomp>   s0     = = =Y#4+;;; !;;;    r   )r   r   new_classess   `  r   _add_css_classesr   
   sY     :&= = = =+ = = =+k9r   c                 J    | j         sd S fd| j         D             | _         d S )Nc                     g | ]}|v|	S r   r   )r	   r
   r   s     r   r   z'_remove_css_classes.<locals>.<listcomp>   s-     9 9 9i$K77 "777r   r   )r   r   s    `r   _remove_css_classesr      sF     9 9 9 943C 9 9 9Dr   c                  |    t           dt          j         g}| D ]"}t          |d          rt	          ||           #dS )a  
    Changes the appearance of the specified panel objects to indicate
    that they are loading.

    This is done by

    * adding a small spinner on top
    * graying out the panel
    * disabling the panel
    * and changing the mouse cursor to a spinner when hovering over the panel

    Arguments
    ---------
    objects: tuple
        The panels to add the loading indicator to.
    pn-r   N)LOADING_INDICATOR_CSS_CLASSr   loading_spinnerhasattrr   objectsr   r   s      r   start_loading_spinnerr      sV    " /0Nf6L0N0NOK 0 04'' 	0T;///0 0r   c                  |    t           dt          j         g}| D ]"}t          |d          rt	          ||           #dS )z
    Removes the loading indicating from the specified panel objects.

    Arguments
    ---------
    objects: tuple
        The panels to remove the loading indicator from.
    r   r   N)r   r   r   r   r   r   s      r   stop_loading_spinnerr   0   sV     /0Nf6L0N0NOK 3 34'' 	3k2223 3r   N)__doc__r   r   r   r   r   r   r   r   r   <module>r      so    
      * : : :9 9 90 0 0,3 3 3 3 3r   