o
    =g
                     @   s   d dl mZm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mZmZ g dZdd	 Ze
eeZeed
dG dd dZeed
dG dd dZeed
dG dd dZeG dd dZei ZdS )    )	dataclassfield)Any)flatatt)static)lazy)format_html	html_safejson_script	mark_safe)CSS	ImportMapJSJSON	importmapr   static_lazyc                 C   s   |  dr| S t| S )N)zhttp://zhttps:///)
startswithr   )path r   >/var/www/html/venv/lib/python3.10/site-packages/js_asset/js.pystatic_if_relative   s   r   T)eqc                   @   sF   e Zd ZU eed< edddZeed< dZeed< dd	 Z	d
d Z
dS )r   srcFTdefaultkw_onlyinlineallmediac                 C      t |  S Nhash__str__selfr   r   r   __hash__      zCSS.__hash__c                 C   s*   | j rtd| j| jS tdt| j| jS )Nz<style media="{}">{}</style>z,<link href="{}" media="{}" rel="stylesheet">)r   r   r   r   r   r%   r   r   r   r$      s   zCSS.__str__N)__name__
__module____qualname__str__annotations__r   r   boolr   r'   r$   r   r   r   r   r      s   
 r   c                   @   s@   e Zd ZU eed< eedZeeef ed< dd Z	dd Z
dS )	r   r   )default_factoryattrsc                 C   r    r!   r"   r%   r   r   r   r'   .   r(   zJS.__hash__c                 C   s   t dt| jtt| jS )Nz<script src="{}"{}></script>)r   r   r   r   r   r0   r%   r   r   r   r$   1   s
   z
JS.__str__N)r)   r*   r+   r,   r-   r   dictr0   r   r'   r$   r   r   r   r   r   (   s
   
 r   c                   @   sF   e Zd ZU eeef ed< edddZedB ed< dd Z	d	d
 Z
dS )r   data Tr   Nidc                 C   r    r!   r"   r%   r   r   r   r'   ?   r(   zJSON.__hash__c                 C   s   t | j| jS r!   )r
   r2   r4   r%   r   r   r   r$   B   s   zJSON.__str__)r)   r*   r+   r1   r,   r   r-   r   r4   r'   r$   r   r   r   r   r   9   s
   
 r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
r   c                 C   s
   || _ d S r!   )
_importmap)r&   r   r   r   r   __init__H   s   
zImportMap.__init__c                 C   s(   | j rt| j d}td| S dS )Nz <script type="application/json">z<script type="importmap">r3   )r5   r
   removeprefixr   )r&   htmlr   r   r   r$   K   s   
zImportMap.__str__c                 C   s   t |tr|j}|d }r| jdi | |d }r*| jdi | |d }rH| D ]\}}| jdi |i | q5d S d S )Nimports	integrityscopes)
isinstancer   r5   get
setdefaultupdateitems)r&   otherr9   r:   r;   scoper   r   r   r?   S   s   
zImportMap.updatec                 C   s0   t |tr| i }||  || |S tS r!   )r<   r   	__class__r?   NotImplemented)r&   rA   combinedr   r   r   __or__a   s   



zImportMap.__or__N)r)   r*   r+   r6   r$   r?   rF   r   r   r   r   r   F   s
    r   N)dataclassesr   r   typingr   django.forms.utilsr   django.templatetags.staticr   django.utils.functionalr   django.utils.htmlr   r	   r
   r   __all__r   r,   r   r   r   r   r   r   r   r   r   r   <module>   s*    
#