o
    T3f
                     @   sx   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r:e
eZdS 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   s0   || _ |pi | _|turtjdtdd d S 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   L/var/www/html/humari/django-venv/lib/python3.10/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o| 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