
    9 f<                     r    d Z ddlmZ ddlZddlZddlmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZ d	ed
edefdZdS )zdjLint add indentation to html.    )partialN   )inside_ignored_blockis_ignored_block_closingis_ignored_block_openingis_safe_closing_tagis_script_style_block_closingis_script_style_block_opening)Config   )format_attributesrawcodeconfigreturnc                    j         dvr^dt          dt          j        dt          ffd}	 t	          ||           }t          j        d||           } t          j        d||           } nQj         dk    rFdt          dt          j        dt          ffd	}t	          ||           }t          j        d
||           } t          j        d|           }j        }d}d}d}	d}
d}d}j        }j	        }j
        }d}|D ]}|st          |          rd}
t          |          rd}|dz  }t          |          rd}t          |          r!|dz  }t          |d          }|du r|dk    rd}t          j        dj         d|t          j        t          j        z  t          j        z            r|du r||z  |z   dz   }nOt          j        t          j        d| d| d| d| d| dj         d| d| d| d| d| dj         dt          j        t          j        z  t          j        z            |          r|du r||z  |z   dz   }nÉj        du rvt          j        t          j        dt          j        t          j        z  t          j        z            |          r*|du r&|	du r"t          |dz
  d          }d}	||z  |z   dz   }nDj        du rtt          j        t          j        d t          j        t          j        z  t          j        z            |          r(|du r$|	du r t          |dz
  d          }||z  |z   dz   }nt          j        j        |t          j        t          j        z  t          j        z            rr|du rmt          |          s\t          j        d!| d"|t          j        t          j        z  t          j        z            st          j        d!| d#|t          j        t          j        z  t          j        z            st1          t          j        d$| d%|t          j        t          j        z  t          j        z            pOt          j        t          j        d$| d&t          j        t          j        z  t          j        z            |                    dk    r ||z  |z   dz   }t          |dz
  d          }n5t          |dz
  d          }||z  |z   dz   }nt          j        d't          j                  z   |t          j        t          j        z  t          j        z            r|du r||dz
  z  |z   dz   }nj        du rht          j        t          j        d(t          j        t          j        z  t          j        z            |          r|du r|	du r||z  |z   dz   }|dz   }d}	nAj        du ret          j        t          j        d)t          j        t          j        z  t          j        z            |          r|du r|	du r||z  |z   dz   }|dz   }nt          j        t          j        d*t          j                  z   dz   t          j        t          j        z  t          j        z            |          r|du r||z  |z   dz   }|dz   }nZ|
du st          |          r|du r||z  |z   dz   }n6|du s|                                s|dz   }nj        s||z  |z   dz   }n|dz   }t          |          rd}d}
nc|du r_t	          t:          |          }t          j        t          j        d+j         d,t          j        t          j        z            ||          }t=          |          rE|du s|r?t?          |          r/d}t          |          s|dz  }t          |d          }|dk    rd}||z   }d-t@          d.t          d/tB          dt          fd0d-t@          dt          dt          j        dt          ffd1}d-t@          dt          dt          j        dt          ffd2}j        du rlt	          ||          }t          j        t          j        d3t          j        t          j        z  t          j        z  t          j"        z            ||          }j#        du rlt	          ||          }t          j        t          j        d4t          j        t          j        z  t          j        z  t          j"        z            ||          }j$        s|%                                }|&                                dz   S )5zIndent raw code.)
handlebarsgolanghtmlmatchr   c                     t          | |          r|                                S |                    d           d|                    d           d|                    d           S )Nr    r      r   groupr   r   r   s     M/var/www/equiseq/venv/lib/python3.11/site-packages/djlint/formatter/indent.pyfix_tag_spacingz$indent_html.<locals>.fix_tag_spacing   s_    #FD%88 %{{}}$kk!nnHHu{{1~~HHAHHH    z-({%-?\+?)[ ]*?(\w(?:(?!%}).)*?)[ ]*?(\+?-?%})z(({{)[ ]*?(\w(?:(?!}}).)*?)[ ]*?(\+?-?}})r   c                     t          | |          r|                                S |                    d           d|                    d           S )Nr   r   r   r   r   s     r   fix_handlebars_template_tagsz1indent_html.<locals>.fix_handlebars_template_tags0   sM    #FD%88 %{{}}$kk!nn77u{{1~~777r   z({{#(?:each|if).+?[^ ])(}})
 r   FTr   z^\s*?(?:))flagszr^(?:[^<\s].*?)? # start of a line, optionally with some text
                    (?:
                        (?:<(zW)>)(?:.*?)(?:</(?:\1)>) # <span>stuff</span> >>>> match 1
                       |(?:<(zf)\b[^>]+?>)(?:.*?)(?:</(?:\2)>) # <span stuff>stuff</span> >>> match 2
                       |(?:<(?:z=)\b[^>]*?/?>) # <img stuff />
                       |(?:<(?:z:)\b[^>]*?/>) # <img />
                       |(?:{%[ ]*?(zX)[ ]+?.*?%})(?:.*?)(?:{%[ ]+?end(?:\3)[ ]+?.*?%}) # >>> match 3
                       |z
                    )[ \t]*?
                    (?:
                    .*? # anything
                    (?: # followed by another slt
                        (?:<(zW)>)(?:.*?)(?:</(?:\4)>) # <span>stuff</span> >>>> match 1
                       |(?:<(zf)\b[^>]+?>)(?:.*?)(?:</(?:\5)>) # <span stuff>stuff</span> >>> match 2
                       |(?:<(?:zX)[ ]+?.*?%})(?:.*?)(?:{%[ ]+?end(?:\6)[ ]+?.*?%}) # >>> match 3
                       |z
                    )[ \t]*?
                    )*? # optional of course
                    [^<]*?$ # with no other tags following until end of line
                z^(?!.*\{\%).*%\}.*$z^[ ]*}|^[ ]*]z(<(z)>)(.*?)(</(\2)>[^<]*?$)z!)\\b[^>]+?>)(.*?)(</(\2)>[^<]*?$)z(^<(z)>)(.*?)(</(\2)>)z)\b[^>]+?>)(.*?)(</(\2)>)^z^([ ]*{%[ ]*?set)(?!.*%}).*$z-(\{(?![^{}]*%[}\s])(?=[^{}]*$)|\[(?=[^\]]*$))z^(?:z(\s*?)(<(?:z:)\b)((?:\"[^\"]*\"|'[^']*'|{[^}]*}|[^'\">{}\/])+?)(\s?/?>)r   contentstag_sizec                     	 t          j        |          }t          j        |ddd          }|t          |          z   | j        k    rt          j        || j        ddd          }nn#  	 |dvrt          t          |                    n|}|d d         dk    r|d d         dk    r
|dd         n|}n#  |                                }Y nxY wY nxY wd	| 	                    |
                                          S )
NFT)trailing_commasensure_ascii
quote_keys)indentr)   r*   r+   )objectr   (r!   )jsonloadsdumpslenmax_line_lengthindent_sizestrevalstripjoin
splitlines)r   r&   r'   leading_spacedata	evaluateds         r   format_dataz indent_html.<locals>.format_dataP  s4   	,:h''Dze%D  H #h--'6+AAA:!-$)!&#  	,, ,4:+E+ECX'''8   |s**y!}/C/C adOO" 
,#>>++$]$$**8+>+>+@+@AAAs%   A%A( (C+A
B65C6CCc                 B   t          | ||          r|                                S |                    d          }|                    d          }|                    d          }|                    d          }|                    d                                          }|                    dd          }t	          |          dk    rG|d                                         dz    	| |d	         t	          | d
| d|           |          z   }| | d
| d
| d
| S )Nr   r   r         =r   z = r/   r   z  )r   r   r8   splitr3   )
r   r   r   r;   open_brackettagclose_bracketr&   contents_splitr>   s
            r   
format_setzindent_html.<locals>.format_sett  s1   e44 	!;;== A{{1~~kk!nnA;;q>>''))!Q//~""q!''))+"2&<@@#@@@@AA!	    PPPPPhPPPPPr   c                 0   t          | ||          r|                                S |                    d          }|                    d          }|                    d                                          }|                    d          pd                                }|                    d          } 	| |                    d                                          dd         t          | d	| d
|           |          }| | d	| d| d| d	| 
S )Nr   r   r   r@   r"      rA   r/   r   z() r.   r#   )r   r   r8   r3   )
r   r   r   r;   rD   rE   indexrF   r&   r>   s
            r   format_functionz$indent_html.<locals>.format_function  s   e44 	!;;== A{{1~~kk!nn""$$Q%2,,..A;KKNN  ""1R4(<99#99-99::	
 
  XXXXXhXXXXXXXr   z/([ ]*)({%-?)[ ]*(set)[ ]+?((?:(?!%}).)*?)(-?%})z([ ]*)({{-?\+?)[ ]*?((?:(?!}}).)*?\w)(\((?:\"[^\"]*\"|'[^']*'|[^\)])*?\)[ ]*)((?:\[[^\]]*?\]|\.[^\s]+)[ ]*)?((?:(?!}}).)*?-?\+?}}))'profiler6   reMatchr   subrC   r,   indent_html_tagsalways_self_closing_html_tags"optional_single_line_template_tagsr   r
   r   maxfindallignored_inline_blocks
IGNORECASEVERBOSE	MULTILINEcompileno_set_formattingsearchtag_unindentr3   tag_unindent_line
tag_indentr8   preserve_leading_spacer   r   r	   r   intDOTALLno_function_formattingpreserve_blank_lineslstriprstrip)r   r   r   funcr    rawcode_flat_listr,   beautified_codeindent_level
in_set_tagis_raw_first_linein_script_style_tagis_block_rawslt_htmlalways_self_closing_htmlslt_templateignored_levelitemtmprH   rL   r>   s    `                   @r   indent_htmlru      s   ~555
	I# 	Ibh 	I3 	I 	I 	I 	I 	I 	I	
 00&<dG
 
 &DdGTT	<	'	'	8s 	828 	8 	8 	8 	8 	8 	8 	8 3W==&7wGGw//]FOLJL&H  &C <L M! }0 }0 	% 8 F F 	% $ $FD11 	LQM(66 	'"&vt,, 	%QMq11Mt##(:(:$ J;F8;;;mbj02<?  G	 %%L(D047CC 
J&  '  !9	 
 !)  &2   5  '  '  !9  !)   &2! "  5#  , 
2R\A/ 2 5 z	> %%L(D047CC $--	
*MBL02:=    . %%d""|a/33LJL(D047CC $--	
$MBL02:=    . %%d""|a/33LL(D047CC I#,rz9 u	 %%'55 & J9x999
*R\9  & JBxBBB
*R\9  &  J;;;;
2R\A  
 z
GHGGGMBJ6E      " ,4t;"<!#3Q77"<!#3Q77,4t; Is63444,rz9 H	 %%\A-.$6=CC $--	
3MBL02:=    . %%e##L(D047C'!+LJJ $--	
DMBL02:=    . %%d""L(D047C'!+LL I
c&"3444t;MBL02:=   	 %%L(D047C'!+LL$&&-- '2>%2G2GL(D047CCT!!!+CC . 	 L(D047CC+C $FD11 	L % U"" ,fd;;D&
{6#:{{{J.   C $FD11 		%5((# )(Efd(S(S ) #(&vt44 6" #M1 5 5!!$)C/"BF "Bc "BS "BTW "B "B "B "BHQ6 Q QRX Q# Q Q Q Q Q Q2Y Yc Y"( Ys Y Y Y Y Y Y$ 5((z6?;;&JBmbl2RZ?")K   
 
 $--@@&J Vmbl2RZ?")K   
 
 & 3)0022!!##d**r   )__doc__	functoolsr   json5r0   regexrN   helpersr   r   r   r   r	   r
   settingsr   
attributesr   r6   ru    r   r   <module>r~      s    % %                                    ) ) ) ) ) )f+ f+f f+ f+ f+ f+ f+ f+ f+r   