o
    j/                  
   @   s   d dl Z ddlmZ ddlmZ e eZdededefd	d
Z	dededefddZ
dededdfddZdededededef
ddZdededededB fddZdS )    N   )
isStrSpace   )
StateBlockstate	startLinereturnc                 C   sx   | j | | j|  }| j| }z| j| }W n
 ty    Y dS w |d7 }|dvr+dS ||k r:| j| }t|s:dS |S )Nr   )*-+)bMarkstShifteMarkssrc
IndexErrorr   )r   r   posmaximummarkerch r   b/var/www/html/fyndo/pharma/fyndo/venv/lib/python3.10/site-packages/markdown_it/rules_block/list.pyskipBulletListMarker   s   

r   c                 C   s   | j | | j|  }|}| j| }|d |krdS | j| }|d7 }t|}|dk s.|dkr0dS 	 ||kr7dS | j| }|d7 }t|}|dkrU|dkrU|| dkrTdS q0|dv rZndS ||k rk| j| }t|skdS |S )Nr   r	   0   9   T
   )).)r   r   r   r   ordr   )r   r   startr   r   r   ch_ordr   r   r   skipOrderedListMarker%   s8   



r!   idxc                 C   s   | j d }|d }t| jd }||k r@| j| j |kr6| j| jdkr6d| j|d  _d| j| _|d7 }|d7 }||k sd S d S )Nr   paragraph_openTr   )levellentokenstypehidden)r   r"   r$   ilengthr   r   r   markTightParagraphsX   s   
 r+   endLinesilentc           (      C   s  t d| ||| d}d}| |rdS | jdkr-| j| | j dkr-| j| | jk r-dS |r>| jdkr>| j| | jkr>d}t| |}|dkrgd}| j| | j	|  }t
| j||d  }	|rf|	dkrfdS nt| |}|dkrsd}ndS |r| || j| krdS | j|d  }
|rdS t| j}|r| dd	d}|	dkrd
|	i|_n| ddd}|dg |_}|
|_|}d}| jjjd}| j}d| _||k r}|}| j| }| j| | | j| | j	|    }}||k r| j| }|dkr|d|| j|  d  7 }n|dkr|d7 }nn|d7 }||k s|}||kr!dn|| }|dkr,d}|| }| ddd}|
|_|dg |_}|rN| j||d  |_d}| jjddrq||k rqt| j||}|d urqd|i|_d}| j}| j| }| j	| }| j| } | j}!| j| _|| _d| _|| j|  | j	|< || j|< |r|| | j|< d| j	|< ||kr|  |d rt!| j"d || _"n	| jj#| || | jr|rd}| j"| dko|  | j"d }| j| _|!| _|r|| j|< || j	|< | | j|< || _| ddd}|
|_| j" }}||d< ||krna| j| }| j| | jk r+nR| |r2nKd}"|D ]}#|#| ||drDd}" nq6|"rJn3|rct| |}|dk rXn%| j| | j	|  }nt| |}|dk rnn|
| j|d  kryn||k s| jjddrd}$| j| j$}%t%|d t| jD ](}&| j|& }'|'j$|%d kr|'j&dkr|'jrd|'jv r|''dd d}$q|$r| j| 'dd |r| dd	d}n| ddd}|
|_||d< || _"|| _|rt(| | dS )Nzentering list: %s, %s, %s, %sFTr      	paragraphr   ordered_list_openolr   bullet_list_openullist	 list_item_openli	tasklistscheckedr   list_item_closer	   classztask-list-itemzcontains-task-listordered_list_closebullet_list_close))LOGGERdebugis_code_block
listIndentsCount	blkIndent
parentTyper!   r   r   intr   r   
skipSpacesr   r%   r&   pushattrsmapmarkupmdblockrulergetRulesbsCountinfooptionsget_detect_task_checkboxmetatightisEmptyminlinetokenizer$   ranger'   attrJoinr+   )(r   r   r,   r-   isTerminatingParagraphrV   posAfterMarker	isOrderedr   markerValue
markerChar
listTokIdxtoken	listLinesnextLineprevEmptyEndterminatorRulesoldParentTyper   r   initialoffsetr   contentStartindentAfterMarkerindent	itemLinescheckboxLenr:   oldTightoldBMark	oldTShift	oldSCountoldListIndent	terminateterminatorRulecontainsTaskr$   jtokr   r   r   
list_blocke   sH  

	




















 









  

rz   r   r   r   c                 C   sx   |d |krdS | | dkrdS | |d  }| |d  dkr dS |dkr'd}n	|d	v r.d
}ndS | |d  dvr:dS |S )zDetect ``[ ]``, ``[x]``, or ``[X]`` at *pos*, followed by whitespace.

    Returns ``True`` (checked), ``False`` (unchecked), or ``None`` (no match).
    r.   N[r   r   ]r6   F)xXT   )r6   r5   r   )r   r   r   innerr:   r   r   r   rT     s   rT   )loggingcommon.utilsr   state_blockr   	getLogger__name__r?   rF   r   r!   r+   boolrz   strrT   r   r   r   r   <module>   s   
3  "