§
    )xÅjÏ  ã                  ó\  — d dl mZ d dlmZmZ d dlmZmZmZ d dl	m
Z
 erd dlmZ d dlmZ g d¢Zeeef         eeeee
gdf         f         z  Zee         Zerd d	lmZ  G d
„ de¦  «        Zeedeeg df         df         Z	 d!d"d„Zd#d„Z G d„ de¦  «        Z G d„ d¦  «        Zd$d „ZdS )%é    )Úannotations)ÚCallableÚIterable)ÚTYPE_CHECKINGÚUnionÚcast)Ú
MouseEvent)ÚProtocol)ÚNotImplementedOrNone)	ÚOneStyleAndTextTupleÚStyleAndTextTuplesÚMagicFormattedTextÚAnyFormattedTextÚto_formatted_textÚis_formatted_textÚTemplateÚmerge_formatted_textÚFormattedTextr   )Ú	TypeGuardc                  ó   — e Zd ZdZdd„ZdS )r   zi
        Any object that implements ``__pt_formatted_text__`` represents formatted
        text.
        Úreturnr   c                ó   — d S ©N© ©Úselfs    úSC:\Projects\Historical\venv\Lib\site-packages\prompt_toolkit/formatted_text/base.pyÚ__pt_formatted_text__z(MagicFormattedText.__pt_formatted_text__+   s   € € € ó    N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   %   s)   € € € € € ð	ð 	ð
 	CÐBÐBÐBÐBÐBr   r   r   NÚ FÚvalueÚstyleÚstrÚauto_convertÚboolr   r   c                óò  ‡— | €g }n©t          | t          ¦  «        rd| fg}nŽt          | t          ¦  «        r| }nvt          | d¦  «        r#t	          d| ¦  «                             ¦   «         }nCt          | ¦  «        rt           | ¦   «         ‰¬¦  «        S |rd| › fg}nt          d| ›�¦  «        ‚‰r!t	          t          ˆfd„|D ¦   «         ¦  «        }t          |t          ¦  «        r|S t          |¦  «        S )at  
    Convert the given value (which can be formatted text) into a list of text
    fragments. (Which is the canonical form of formatted text.) The outcome is
    always a `FormattedText` instance, which is a list of (style, text) tuples.

    It can take a plain text string, an `HTML` or `ANSI` object, anything that
    implements `__pt_formatted_text__` or a callable that takes no arguments and
    returns one of those.

    :param style: An additional style string which is applied to all text
        fragments.
    :param auto_convert: If `True`, also accept other types, and convert them
        to a string first.
    Nr%   r   r   )r'   z[No formatted text. Expecting a unicode object, HTML, ANSI or a FormattedText instance. Got c                ó,   •— g | ]^}}‰d z   |z   g|¢R ‘ŒS )ú r   )Ú.0Ú
item_styleÚrestr'   s      €r   ú
<listcomp>z%to_formatted_text.<locals>.<listcomp>_   s2   ø€ ÐOÐOÐOÐ3D°:Àˆe�c‰k˜JÑ&Ð.¨Ð.Ð.ÐOÐOÐOr   )Ú
isinstancer(   ÚlistÚhasattrr   r   Úcallabler   Ú
ValueErrorr   r   )r&   r'   r)   Úresults    `  r   r   r   7   s2  ø€ ð& €}ØˆˆÝ	�E�3Ñ	Ô	ð 
Ø�u�+�ˆˆÝ	�E�4Ñ	 Ô	 ð 
ØˆˆÝ	�Ð/Ñ	0Ô	0ð 	
ÝÐ*¨EÑ2Ô2×HÒHÑJÔJˆˆÝ	�%‰Œð 
Ý   ¡¤°Ð6Ñ6Ô6Ð6Ø	ð 
Ø˜%�zÐ"Ð#ˆˆåØsÐjoÐsÐsñ
ô 
ð 	
ð
 ð 
ÝÝØOÐOÐOÐOÈÐOÑOÔOñ
ô 
ˆõ �&�-Ñ(Ô(ð %Øˆå˜VÑ$Ô$Ð$r   ÚobjectúTypeGuard[AnyFormattedText]c                óˆ   — t          | ¦  «        rdS t          | t          t          f¦  «        rdS t	          | d¦  «        rdS dS )zš
    Check whether the input is valid formatted text (for use in assert
    statements).
    In case of a callable, it doesn't check the return type.
    Tr   F)r5   r2   r(   r3   r4   )r&   s    r   r   r   k   sO   € õ ��„ð ØˆtÝ�%�#�t˜Ñ%Ô%ð ØˆtÝˆuÐ-Ñ.Ô.ð ØˆtØˆ5r   c                  ó,   ‡ — e Zd ZdZdd„Zdˆ fd„Zˆ xZS )	r   z†
    A list of ``(style, text)`` tuples.

    (In some situations, this can also be ``(style, text, mouse_handler)``
    tuples.)
    r   r   c                ó   — | S r   r   r   s    r   r   z#FormattedText.__pt_formatted_text__‚   s   € Øˆr   r(   c                óL   •— dt          ¦   «                              ¦   «         › d�S )NzFormattedText(ú))ÚsuperÚ__repr__)r   Ú	__class__s    €r   r@   zFormattedText.__repr__…   s$   ø€ Ø5¥¡¤× 0Ò 0Ñ 2Ô 2Ð5Ð5Ð5Ð5r   r    )r   r(   )r!   r"   r#   r$   r   r@   Ú__classcell__)rA   s   @r   r   r   z   s[   ø€ € € € € ðð ðð ð ð ð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6r   c                  ó"   — e Zd ZdZdd„Zdd	„Zd
S )r   z¡
    Template for string interpolation with formatted text.

    Example::

        Template(' ... {} ... ').format(HTML(...))

    :param text: Plain text.
    Útextr(   r   ÚNonec                ó    — d|vsJ ‚|| _         d S )Nz{0})rD   )r   rD   s     r   Ú__init__zTemplate.__init__”   s   € Ø˜DÐ Ð Ð Ð ØˆŒ	ˆ	ˆ	r   Úvaluesr   c                ó   ‡ ‡— dˆ ˆfd„}|S )Nr   r   c                 óz  •— ‰j                              d¦  «        } t          | ¦  «        dz
  t          ‰¦  «        k    sJ ‚t          ¦   «         }t	          | ‰¦  «        D ]>\  }}|                     d|f¦  «         |                     t          |¦  «        ¦  «         Œ?|                     d| d         f¦  «         |S )Nz{}é   r%   éÿÿÿÿ)rD   ÚsplitÚlenr   ÚzipÚappendÚextendr   )Úpartsr7   ÚpartÚvalr   rH   s       €€r   Ú
get_resultz#Template.format.<locals>.get_result™   s°   ø€ à”I—O’O DÑ)Ô)ˆEÝ�u‘:”: ‘>¥S¨¡[¤[Ò0Ð0Ð0Ð0å"‘_”_ˆFÝ  ¨Ñ/Ô/ð 6ð 6‘	��cØ—’˜r 4˜jÑ)Ô)Ð)Ø—’Õ/°Ñ4Ô4Ñ5Ô5Ð5Ð5Ø�MŠM˜2˜u Rœy˜/Ñ*Ô*Ð*ØˆMr   ©r   r   r   )r   rH   rU   s   `` r   ÚformatzTemplate.format˜   s/   øø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð Ðr   N)rD   r(   r   rE   )rH   r   r   r   )r!   r"   r#   r$   rG   rW   r   r   r   r   r   ‰   sF   € € € € € ðð ðð ð ð ðð ð ð ð ð r   r   ÚitemsúIterable[AnyFormattedText]c                ó   ‡ — dˆ fd„}|S )zH
    Merge (Concatenate) several pieces of formatted text together.
    r   r   c                 ór   •— t          ¦   «         } ‰D ]$}|                      t          |¦  «        ¦  «         Œ%| S r   )r   rQ   r   )r7   ÚirX   s     €r   Ú_merge_formatted_textz3merge_formatted_text.<locals>._merge_formatted_text­   s>   ø€ Ý‘”ˆØð 	0ð 	0ˆAØ�MŠMÕ+¨AÑ.Ô.Ñ/Ô/Ð/Ð/Øˆr   rV   r   )rX   r]   s   ` r   r   r   ¨   s)   ø€ ð
ð ð ð ð ð ð !Ð r   )r%   F)r&   r   r'   r(   r)   r*   r   r   )r&   r8   r   r9   )rX   rY   r   r   )Ú
__future__r   Úcollections.abcr   r   Útypingr   r   r   Úprompt_toolkit.mouse_eventsr	   Útyping_extensionsr
   Ú'prompt_toolkit.key_binding.key_bindingsr   Ú__all__Útupler(   r   r3   r   r   r   r   r   r   r   r   r   r   r   r   ú<module>rf      sü  ðØ "Ð "Ð "Ð "Ð "Ð "à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à 2Ð 2Ð 2Ð 2Ð 2Ð 2àð MØ*Ð*Ð*Ð*Ð*Ð*àLÐLÐLÐLÐLÐLð
ð 
ð 
€ð 
ˆ#ˆsˆ(„O�e˜C  h°
¨|Ð=SÐ/SÔ&TÐTÔUÑUð ð Ð.Ô/Ð ð ð 	CØ Ð Ð Ð Ð Ð ðCð Cð Cð Cð C˜Xñ Cô Cð Cð ØØØØˆRÐ#Ð#Ô$Øð	
ôÐ ð DIð1%ð 1%ð 1%ð 1%ð 1%ðhð ð ð ð6ð 6ð 6ð 6ð 6Ð&ñ 6ô 6ð 6ðð ð ð ð ñ ô ð ð>!ð !ð !ð !ð !ð !r   