
2!V                 @   sF   d  d l  m Z d  d l m Z m Z m Z Gd d   d e  Z d S)    )settings)
CompressorSOURCE_HUNKSOURCE_FILEc                   sI   e  Z d  Z d d d   f d d  Z d d   Z   f d d   Z   S)	JsCompressorNZjsc                s2   t  t j  } t t |   j | | | |  d  S)N)listr   ZCOMPRESS_JS_FILTERSsuperr   __init__)selfcontentZoutput_prefixcontextfilters)	__class__ :/tmp/pip-build-0sboevxh/django-compressor/compressor/js.pyr	      s    zJsCompressor.__init__c       	      C   s  |  j  r |  j  Sg  |  _ xd|  j j   D]S} |  j j |  } d | k r |  j | d  } |  j |  } t | | | f } n t |  j j	 |  d  | f } |  j  j
 |  d | k r d } n d | k r d } n d } |  j o |  j d d | k } | r/t j r/|  j d d j  j
 |  q) |  j d	 |  j j |  d
 |  j  } | j  j
 |  |  j j
 | | f  q) W|  j  S)Nsrcasyncz asyncdeferz defer    r   r   r   r   )Zsplit_contentextra_nodesparserZjs_elemsZelem_attribsZget_basenameget_filenamer   r   Zelem_contentappendr   COMPRESS_ENABLEDr   Zelem_strr   )	r
   elemZattribsbasenamefilenamer   extraZappend_to_previousnoder   r   r   split_contents   s2    					zJsCompressor.split_contentsc                s   t  j s$ t  j s$ | j d d  r |  j   t |  d  r g  } xG |  j D]< \ } } | j j i | d 6 | j	 | j
 | |    qM Wd j |  Sn  t t |   j
 | |   S)NZforcedFr   r   
)r   r   ZCOMPRESS_PRECOMPILERSgetr!   hasattrr   Zextra_contextupdater   outputjoinr   r   )r
   argskwargsretr   Zsubnode)r   r   r   r&   *   s    
zJsCompressor.output)__name__
__module____qualname__r	   r!   r&   r   r   )r   r   r      s   r   N)Zcompressor.confr   Zcompressor.baser   r   r   r   r   r   r   r   <module>   s   