a
    ¦Q•h£
  ã                   @   st   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ dZeƒ ZG dd„ dƒZed	krpe
eƒZdS )
é    N)ÚVERSION)Úflatatt)Ústatic)Úformat_htmlÚ	html_safeÚ	mark_safe)ÚJSr   c                   @   sX   e Zd ZdZdefdd„Zdd„ Zdd„ Zed	kr<d
d„ Z	ndd„ Z
dd„ Zdd„ ZdS )r   a  
    Use this to insert a script tag via ``forms.Media`` containing additional
    attributes (such as ``id`` and ``data-*`` for CSP-compatible data
    injection.)::

        forms.Media(js=[
            JS('asset.js', {
                'id': 'asset-script',
                'data-answer': '"42"',
            }),
        ])

    The rendered media tag (via ``{{ media.js }}`` or ``{{ media }}`` will
    now contain a script tag as follows, without line breaks::

        <script type="text/javascript" src="/static/asset.js"
            data-answer="&quot;42&quot;" id="asset-script"></script>

    The attributes are automatically escaped. The data attributes may now be
    accessed inside ``asset.js``::

        var answer = document.querySelector('#asset-script').dataset.answer;
    Nc                 C   s,   || _ |pi | _|tur(tjdtdd� d S )NzsJS automatically determines whether it received an absolute path or not. Stop passing the 'static' argument please.é   )Ú
stacklevel)ÚjsÚattrsÚ	_sentinelÚwarningsÚwarnÚDeprecationWarning)Úselfr   r   r   © r   úD/var/www/sistema_ama/venv/lib/python3.9/site-packages/js_asset/js.pyÚ__init__)   s    
üzJS.__init__c                 C   s   dS )NTr   )r   Ú_r   r   r   Ú
startswith4   s    zJS.startswithc                 C   s    d| j › dtj| jdd�› d�S )NzJS(z, T©Ú	sort_keysú))r   ÚjsonÚdumpsr   ©r   r   r   r   Ú__repr__8   s    zJS.__repr__©é   é   c                 C   s.   t d| j d¡r| jnt| jƒtt| jƒƒƒS )Nz<script src="{}"{}></script>©zhttp://zhttps://ú/)r   r   r   r   r   r   r   r   r   r   r   Ú__str__=   s    
ÿûz
JS.__str__c                 C   sD   | j  d¡r| j nt| j ƒ}| jr@td|tt| jƒƒƒd d… S |S )Nr!   z{}"{}éÿÿÿÿ)r   r   r   r   r   r   r   )r   r   r   r   r   Ú__html__H   s    
ÿýÿ ýzJS.__html__c                 C   s4   t |tƒr"| j|jko | j|jkS | j|ko2| j S )N)Ú
isinstancer   r   r   )r   Úotherr   r   r   Ú__eq__T   s    
z	JS.__eq__c                 C   s   t | jtj| jdd�fƒS )NTr   )Úhashr   r   r   r   r   r   r   r   Ú__hash__Y   s    zJS.__hash__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r#   r%   r(   r*   r   r   r   r   r      s   
r   r   )r   r   Údjangor   Údjango.forms.utilsr   Údjango.templatetags.staticr   Údjango.utils.htmlr   r   r   Ú__all__Úobjectr   r   r   r   r   r   Ú<module>   s   M