a
    Dg                     @   st   d dl mZ d dlmZmZmZ d dlmZ G dd deZG dd deZ	e	dd	Z
e
jZd
d ZefddZdS )    )forms)AdapterAdapterRegistryJSContextBase)versioned_staticc                   @   s   e Zd Zedd ZdS )WagtailJSContextBasec                 C   s   t jt| jgdS )N)Zjs)r   ZMediar   telepath_js_path)self r
   O/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/telepath.py
base_media   s    zWagtailJSContextBase.base_mediaN)__name__
__module____qualname__propertyr   r
   r
   r
   r   r      s   r   c                   @   s   e Zd ZeZdS )WagtailAdapterRegistryN)r   r   r   r   Zjs_context_base_classr
   r
   r
   r   r      s   r   z$wagtailadmin/js/telepath/telepath.js)r   c                 C   s   t | | d S N)registryregister)adapterclsr
   r
   r   r      s    r   c                    s    fdd}|S )a}  
    Allows a class to implement its adapting logic with a `js_args()` method on the class itself.
    This just helps reduce the amount of code you have to write.

    For example:

        @adapter('wagtail.mywidget')
        class MyWidget():
            ...

            def js_args(self):
                return [
                    self.foo,
                ]

    Is equivalent to:

        class MyWidget():
            ...


        class MyWidgetAdapter(Adapter):
            js_constructor = 'wagtail.mywidget'

            def js_args(self, obj):
                return [
                    self.foo,
                ]
    c                    s.   t | jd  fdd d}t| |  | S )Nr   c                 S   s   |  S r   )js_args)r	   objr
   r
   r   <lambda>D       z+adapter.<locals>._wrapper.<locals>.<lambda>)js_constructorr   )typer   r   )r   ZClassAdapterbaser   r
   r   _wrapper>   s    	zadapter.<locals>._wrapperr
   )r   r   r   r
   r   r   r      s    r   N)Zdjangor   Ztelepathr   r   r   Zwagtail.admin.staticfilesr   r   r   r   Zjs_context_classZ	JSContextr   r   r
   r
   r
   r   <module>   s   
