
    $gn                     $    d dl mZ  G d d      Zy)    )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y)DashPageMixinc                 j    t        | j                  | j                        j                  |      d      S )Nlxml)r   find_elementdash_entry_locatorget_attribute)selfattrs     S/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/dash/testing/dash_page.py_get_dash_dom_by_attributez(DashPageMixin._get_dash_dom_by_attribute   s0    d556DDTJF
 	
    c                      y)Nz.test-devtools-error-count r   s    r   devtools_error_count_locatorz*DashPageMixin.devtools_error_count_locator
   s    +r   c                      y)Nz#react-entry-pointr   r   s    r   r	   z DashPageMixin.dash_entry_locator   s    #r   c                 $    | j                  d      S )N	outerHTMLr   r   s    r   dash_outerhtml_domz DashPageMixin.dash_outerhtml_dom       ..{;;r   c                 $    | j                  d      S )N	innerHTMLr   r   s    r   dash_innerhtml_domz DashPageMixin.dash_innerhtml_dom   r   r   c                 8    | j                   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                 8    | j                   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                 8    | j                   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                 8    | j                   j                  d      S )Nzreturn window.storer   r   s    r   window_storezDashPageMixin.window_storeE   s    {{))*?@@r   c                 >    | j                    xs | j                  g k(  S N)r'   r#   r   s    r   _wait_for_callbacksz!DashPageMixin._wait_for_callbacksI   s!    %%%D$*>*>"*DDr   c                 @    | j                   j                  d| d      S )Nz/return JSON.parse(window.localStorage.getItem(''));r   )r   store_ids     r   get_local_storagezDashPageMixin.get_local_storageL   s%    {{))=hZtL
 	
r   c                 @    | j                   j                  d| d      S )Nz1return JSON.parse(window.sessionStorage.getItem('r,   r   )r   
session_ids     r   get_session_storagez!DashPageMixin.get_session_storageQ   s%    {{))?
|4P
 	
r   c                 :    | j                   j                  d       y )Nzwindow.localStorage.clear()r   r   s    r   clear_local_storagez!DashPageMixin.clear_local_storageV   s    ""#@Ar   c                 :    | j                   j                  d       y )Nzwindow.sessionStorage.clear()r   r   s    r   clear_session_storagez#DashPageMixin.clear_session_storageY   s    ""#BCr   c                 D    | j                          | j                          y r)   )r3   r5   r   s    r   clear_storagezDashPageMixin.clear_storage\   s      """$r   N)local)session)__name__
__module____qualname__r   propertyr   r	   r   r   r!   r#   r%   r'   r*   r.   r1   r3   r5   r7   r   r   r   r   r      s    

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



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