
    Mfn                     ,    d dl mZ  G d d          ZdS )    )BeautifulSoupc                       e Zd Zd Zed             Zed             Zed             Zed             Zed             Z	ed             Z
ed             Zed	             Zd
 ZddZddZd Zd Zd ZdS )DashPageMixinc                 x    t          |                     | j                                      |          d          S )Nlxml)r   find_elementdash_entry_locatorget_attribute)selfattrs     U/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/dash/testing/dash_page.py_get_dash_dom_by_attributez(DashPageMixin._get_dash_dom_by_attribute   s8    d566DDTJJF
 
 	
    c                     dS )Nz.test-devtools-error-count r   s    r   devtools_error_count_locatorz*DashPageMixin.devtools_error_count_locator
   s    ++r   c                     dS )Nz#react-entry-pointr   r   s    r   r	   z DashPageMixin.dash_entry_locator   s    ##r   c                 ,    |                      d          S )N	outerHTMLr   r   s    r   dash_outerhtml_domz DashPageMixin.dash_outerhtml_dom       ..{;;;r   c                 ,    |                      d          S )N	innerHTMLr   r   s    r   dash_innerhtml_domz DashPageMixin.dash_innerhtml_dom   r   r   c                 6    | j                             d          S )Nzp
            var p = window.store.getState().paths;
            return {strs: p.strs, objs: p.objs}
            driverexecute_scriptr   s    r   redux_state_pathszDashPageMixin.redux_state_paths   s!    {))
 
 	
r   c                 6    | j                             d          S )NaY  

            // Check for legacy `pendingCallbacks` store prop (compatibility for Dash matrix testing)
            var pendingCallbacks = window.store.getState().pendingCallbacks;
            if (pendingCallbacks) {
                return pendingCallbacks.map(function(cb) {
                    var out = {};
                    for (var key in cb) {
                        if (typeof cb[key] !== 'function') { out[key] = cb[key]; }
                    }
                    return out;
                });
            }

            // Otherwise, use the new `callbacks` store prop
            var callbacksState =  Object.assign({}, window.store.getState().callbacks);
            delete callbacksState.stored;
            delete callbacksState.completed;

            return Array.prototype.concat.apply([], Object.values(callbacksState));
            r   r   s    r   redux_state_rqszDashPageMixin.redux_state_rqs#   s!    {))
 
 	
r   c                 6    | j                             d          S )NzC
            return window.store.getState().isLoading;
            r   r   s    r   redux_state_is_loadingz$DashPageMixin.redux_state_is_loading=   s!    {))
 
 	
r   c                 6    | j                             d          S )Nzreturn window.storer   r   s    r   window_storezDashPageMixin.window_storeE   s    {))*?@@@r   c                 (    | j          p
| j        g k    S N)r'   r#   r   s    r   _wait_for_callbacksz!DashPageMixin._wait_for_callbacksI   s    %%D$*>"*DDr   localc                 >    | j                             d| d          S )Nz/return JSON.parse(window.localStorage.getItem(''));r   )r   store_ids     r   get_local_storagezDashPageMixin.get_local_storageL   s*    {))LhLLL
 
 	
r   sessionc                 >    | j                             d| d          S )Nz1return JSON.parse(window.sessionStorage.getItem('r-   r   )r   
session_ids     r   get_session_storagez!DashPageMixin.get_session_storageQ   s*    {))P
PPP
 
 	
r   c                 :    | j                             d           d S )Nzwindow.localStorage.clear()r   r   s    r   clear_local_storagez!DashPageMixin.clear_local_storageV   s    ""#@AAAAAr   c                 :    | j                             d           d S )Nzwindow.sessionStorage.clear()r   r   s    r   clear_session_storagez#DashPageMixin.clear_session_storageY   s    ""#BCCCCCr   c                 V    |                                   |                                  d S r)   )r5   r7   r   s    r   clear_storagezDashPageMixin.clear_storage\   s,      """""$$$$$r   N)r+   )r0   )__name__
__module____qualname__r   propertyr   r	   r   r   r!   r#   r%   r'   r*   r/   r3   r5   r7   r9   r   r   r   r   r      sk       
 
 

 , , X, $ $ X$ < < X< < < X< 
 
 X
 
 
 X
2 
 
 X
 A A XAE E E
 
 
 


 
 
 

B B BD D D% % % % %r   r   N)bs4r   r   r   r   r   <module>r?      sS         Z% Z% Z% Z% Z% Z% Z% Z% Z% Z%r   