o
    a"<f
                     @   s4   d dl mZ d dlmZmZmZ G dd deZdS )    )settings)
CompressorSOURCE_HUNKSOURCE_FILEc                       s4   e Zd ZdhZdd Z fddZd	ddZ  ZS )
JsCompressorztext/javascriptc           	      C   s  | j r| j S g | _| j D ]t}| j|}d|v r-| |d }| |}t|||f}n
t| j	|d |f}| j 
| d|v rDd}n	d|v rKd}nd}| joX| jd d |k}|rjtjrj| jd d	 j 
| q| j| j|d
}|j 
| | j
||f q| j S )Nsrcasyncz asyncdeferz defer r      )content)split_contentextra_nodesparserjs_elemselem_attribsget_basenameget_filenamer   r   elem_contentappendr   COMPRESS_ENABLEDcopyelem_str)	selfelemattribsbasenamefilenamer   extraappend_to_previousnode r"   D/var/www/html/kck/venv/lib/python3.10/site-packages/compressor/js.pysplit_contents	   s2   

zJsCompressor.split_contentsc                    s   t jst js|ddr7|   t| dr7g }| jD ]\}}|jd|i |	|j
|i | qd|S t j
|i |S )NforcedFr   r   
)r   r   COMPRESS_PRECOMPILERSgetr$   hasattrr   extra_contextupdater   outputjoinsuper)r   argskwargsretr   subnode	__class__r"   r#   r,   '   s   


zJsCompressor.outputFc                 C   s4   g }|  |D ]}tjs|r|d7 }|| q|S )zk
        Passes each hunk (file or code) to the 'input' methods
        of the compressor filters.
        ;)hunksr   r   r   )r   r%   r   hunkr"   r"   r#   filter_input3   s   
zJsCompressor.filter_input)F)__name__
__module____qualname__output_mimetypesr$   r,   r8   __classcell__r"   r"   r3   r#   r      s
    r   N)compressor.confr   compressor.baser   r   r   r   r"   r"   r"   r#   <module>   s    