U
    a	                     @   s   d dl m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
 d dlmZmZ dZed	k rle
Zd
d Z
G dd deZdS )    )unicode_literalsN)VERSION)apps)flatatt)static)format_html	mark_safe)JSr   )   
   c                 C   s(   t dr ddlm} || S t| S )Nzdjango.contrib.staticfilesr   )staticfiles_storage)r   is_installedZ"django.contrib.staticfiles.storager   url_static)pathr    r   z/home/adriano.carvalho/ftp/files/BrinquedotecaVirtual/brinquedotecavirtual/venv/lib/python3.8/site-packages/js_asset/js.pyr      s    

r   c                   @   sB   e Zd ZdZdddZdd Zdd	 Z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;
    NTc                 C   s   || _ |pi | _|| _d S N)jsattrsr   )selfr   r   r   r   r   r   __init__3   s    
zJS.__init__c                 C   s   dS )NTr   )r   _r   r   r   
startswith8   s    zJS.startswithc                 C   s   d | jtj| jdd| jS )NzJS({}, {}, static={})T	sort_keys)formatr   jsondumpsr   r   r   r   r   r   __repr__<   s
      zJS.__repr__c                 C   s>   | j rt | jn| j}| jr:td|tt| jd d S |S )Nz{}"{})r   r   r   r   r   r   )r   r   r   r   r   __html__A   s
     zJS.__html__c                 C   sF   t |tr.| j|jko,| j|jko,| j|jkS | j|koD| j oD| jS r   )
isinstancer	   r   r   r   )r   otherr   r   r   __eq__I   s    


z	JS.__eq__c                 C   s   t | jtj| jdd| jfS )NTr   )hashr   r   r   r   r   r   r   r   r   __hash__R   s    zJS.__hash__)NT)
__name__
__module____qualname____doc__r   r   r    r"   r%   r'   r   r   r   r   r	      s   
	r	   )
__future__r   r   Zdjangor   Zdjango.appsr   Zdjango.forms.utilsr   Zdjango.templatetags.staticr   Zdjango.utils.htmlr   r   __all__r   objectr	   r   r   r   r   <module>   s   