
    ei                        d Z ddlmc mZ ddlmZmZ ddlmZ ddl	Z	dZ
de
 d	Zd
Zdj                  e      Zdj                  e
e      Zde Zde Zdj                  e
ee      Z e	j&                  ee	j(                  e	j*                  z        Z e	j&                  ee	j(                  e	j*                  z        Z e	j&                  ee	j(                  e	j*                  z        Z e	j&                  ee	j(                  e	j*                  z        Z e	j&                  de de e	j(                  e	j*                  z        ZeeedZh dZd Z G d de      Z G d de      Zd Z y)zHTML.    N   )Blocktype_string_in   )BlocksExtensionz	(?:[ \t])z(?:\\(?:[a-f0-9]{1,6}z?|[^\r\n\f]|$))zx
(?:(?:-?(?:[^\x00-\x2f\x30-\x40\x5B-\x5E\x60\x7B-\x9f])+|--)
(?:[^\x00-\x2c\x2e\x2f\x3A-\x40\x5B-\x5E\x60\x7B-\x9f])*)
zJ
(?:"(?:\\(?:.)|[^\\"\r\n\f]+)*?"|'(?:\\(?:.)|[^\\'\r\n\f]+)*?'|{ident}+)
)identz-
(?:{ws}*(?P<cmp>=){ws}*(?P<value>{value}))?
)wsvaluez\#z\.z1
\[(?:{ws}*(?P<attr_name>{ident}){attr})+{ws}*\]
)r	   r   attr)flagsz(?P<attr_name>))idclassr   >   rawautohtmlblockinlinec                    t        |       }d}i }d}d}t        j                  |       }|t        d      |j	                  d      }|j                         }||k  rt        j                         D ]  \  }}|j                  | |      }||dk(  r)|j	                  d      dd ||<   |j                         }n[|dk(  rU||vr|j	                  d      dd g||<   n&||   j                  |j	                  d      dd        |j                         }n|j	                  d      }t        j                  |      }	|	|	j                         }
|	j	                  d      j                         }|	j	                  d      }|
|dk7  r|nd	}n|j                  d
      r|dd }|dk(  rB|j                  d      D cg c]  }|s|	 }}|r&||v r||   j                  |       n|||<   n|}|||<   t        j                  ||
      }	|	|j                         } n |t        d      ||k  rd|v rdj                  |d         |d<   ||fS c c}w )zParse the selector.Nr   zNo defined tagr   r   r   	attr_namer
    )"' zInvalid selector)lenRE_IDENTmatch
ValueErrorgroupend
ATTRIBUTESitemsappendRE_ATTRsearchlower
startswithsplitextendjoin)selectoreoltagattrsr!   matypepatresultsm2posnamer
   vs                 V/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/pymdownx/blocks/html.pyparse_selectorsr9   -   sX    h-C
CE
CAx Ay)**
''!*C
%%'C
)$**, $	JE3		(C(A}D=#$771:ab>E%L%%'Cg%E)()
12'7ee++AGGAJqrN;%%'CggajG 0B. ffh!xx4::< " 1 =,0GODE"--j9$)!BKE7?05C0@$F1AQ$FE$F$#'5=$)$K$6$6u$=27E$K$)E*/E$K$^^GS9' .( %%'CI$	L 9/00Q )T %%.1g:' %Gs   7I?Ic                   `     e Zd ZdZdZdZdd ee      fiZ fdZ	d Z
d Zd	 Zd
 Zd Z xZS )HTMLa  
    HTML.

    Arguments (1 required):
    - HTML tag name

    Options:
    - `markdown` (string): specify how content inside the element should be treated:
      - `auto`: will automatically determine how an element's content should be handled.
      - `inline`: treat content as an inline element's content.
      - `block`: treat content as a block element's content.
      - `raw`: treat the content as raw content (atomic).

    Content:
    HTML element content.
    r   Tmarkdownr   c                     d| _         i | _        |j                  d      D ]0  }|j                  dd      }|t        v r|nd| j                  |d   <   2 t        |   ||||       y)Initialize.Ncustommoder   r.   )r<   r?   getVALID_MODESsuper__init__)selflengthtrackermdconfigentryr@   	__class__s          r8   rD   zHTML.__init__   sm     ZZ) 	PE99VV,D040CDKKe%	P 	"f5    c                 h    	 t        | j                        \  | _        | _        y# t        $ r Y yw xY w)zHandle argument parsing.FT)r9   argumentr.   r   r   rE   parents     r8   on_validatezHTML.on_validate   s7    	"1$--"@DHdi   		s   "% 	11c                     | j                   d   }|dk(  r6| j                  j                         }| j                  j	                  ||      }|dk(  rd}|S )zCheck if this is atomic.r<   r   r   r   )optionsr.   r'   r?   rA   )rE   r@   r.   s      r8   on_markdownzHTML.on_markdown   sN     ||J'6>((.."C;;??3-D6>DrL   c                 t    t        j                  || j                  j                         | j                        S )zCreate the element.)etree
SubElementr.   r'   r   rO   s     r8   	on_createzHTML.on_create   s(     (8$))DDrL   c                     |j                   dv S )z4Does tag require no processing and no HTML escaping.)scriptstyle)r.   )rE   r.   s     r8   is_htmlzHTML.is_html   s     ww---rL   c                    | j                   d   }|dk(  r6| j                  j                         }| j                  j	                  ||      }|dk(  r| j                  |      s|dk(  r5| j                  j                  j                  |j                        |_	        y|dk(  r| j                  |      s|dk(  rD| j                  j                  j                  | j                  |j                              |_	        yy)zOn end event.r<   r   r   r   N)rS   r.   r'   r?   rA   r\   rH   	htmlStashstoretextis_rawhtml_escape)rE   r   r@   r.   s       r8   on_endzHTML.on_end   s     ||J'6>((.."C;;??3-DFNt||E2tv~**00<EJfnU!3**001A1A%**1MNEJ 9FrL   )__name__
__module____qualname____doc__NAMEARGUMENTr   rB   OPTIONSrD   rQ   rT   rX   r\   rc   __classcell__rK   s   @r8   r;   r;   l   sJ    " DHV^K89G6
E.
OrL   r;   c                   (     e Zd ZdZ fdZd Z xZS )HTMLExtensionzHTML Blocks Extension.c                 :    dg dgi| _         t        |   |i | y)r>   r?   z#Specify handling for custom blocks.N)rI   rC   rD   )rE   argskwargsrK   s      r8   rD   zHTMLExtension.__init__   s0     5
 	$)&)rL   c                 L    |j                  t        | j                                y)zExtend Markdown blocks.N)registerr;   
getConfigs)rE   rH   	block_mgrs      r8   extendMarkdownBlocksz"HTMLExtension.extendMarkdownBlocks   s     	4!23rL   )rd   re   rf   rg   rD   rv   rk   rl   s   @r8   rn   rn      s     
*4rL   rn   c                      t        | i |S )zReturn extension.)rn   )rp   rq   s     r8   makeExtensionrx      s     $)&))rL   )!rg   xml.etree.ElementTreerV   ElementTreer   r   r   blocksr   reWSCSS_ESCAPES
IDENTIFIERformatVALUEATTRPAT_ID	PAT_CLASSPAT_ATTRcompileIXr   RE_IDRE_CLASSRE_ATTRSr%   r"   rB   r9   r;   rn   rx    rL   r8   <module>r      ss    % % ( $ 	 (O<

	
FF 
FbF 
 zl	*	
Fb
F. 	 2::jrtt4

6-2::irttbdd{32::hbddRTTk2
"**zl!D6:"$$+
NHh?
8<~NO5 NOb4O 4**rL   