
    ^f
                         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          Zed	k    r e
e          ZdS dS )
    N)VERSION)flatatt)static)format_html	html_safe	mark_safe)JSr   c                   P    e Zd ZdZdefdZd Zd Zedk    rd Z	nd Z
d	 Z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                 t    || _         |pi | _        |t          urt          j        dt
          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   s       =/var/www/html/env/lib/python3.11/site-packages/js_asset/js.py__init__zJS.__init__)   sV    [b
""MK"	      #"    c                     dS )NT )r   _s     r   
startswithzJS.startswith4   s    tr   c                 P    d| j          dt          j        | j        d           dS )NzJS(z, T	sort_keys))r   jsondumpsr   r   s    r   __repr__zJS.__repr__8   s.    ITWII
4: F F FIIIIr         c           	          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"   s    r   __str__z
JS.__str__=   sV    .7%%&BCC%DG__'$*--..  r   c           	          | j                             d          r| j         nt          | j                   }| j        r8t	          d|t          t          | j                                      d d         n|S )Nr(   z{}"{})r   r   r   r   r   r   r   )r   r   s     r   __html__zJS.__html__H   ss     7%%&BCC%DG__  :GR74:3F3F)G)GHH"MMr   c                     t          |t                    r | j        |j        k    o| j        |j        k    S | j        |k    o| j         S )N)
isinstancer	   r   r   )r   others     r   __eq__z	JS.__eq__T   sH    eR   	E7eh&D4:+DDw%2
N2r   c                 `    t          | j        t          j        | j        d          f          S )NTr   )hashr   r    r!   r   r"   s    r   __hash__zJS.__hash__Y   s(    TWdjtDDDEFFFr   )__name__
__module____qualname____doc__r   r   r   r#   r   r*   r-   r1   r4   r   r   r   r	   r	      s         0 "&i 	 	 	 	  J J J &	 	 	 	
	 
	 
	3 3 3
G G G G Gr   r	   r$   )r    r   djangor   django.forms.utilsr   django.templatetags.staticr   django.utils.htmlr   r   r   __all__objectr   r	   r   r   r   <module>r?      s            & & & & & & - - - - - - ? ? ? ? ? ? ? ? ? ?  FHH	JG JG JG JG JG JG JG JGZ f	2BBB r   