o
    h,                     @   sj   d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d dl
mZmZ dZG dd dZG dd	 d	e	Zd
S )    escape)ListOptionalSequenceUnion)Attr	DOMEngine)HTMLTag)areabasebrcolembedhrimginputlinkmetaparamsourcetrackwbrc                   @   sF   e Zd ZdZdZddedee defddZ	e
ded	d fd
dZdS )Eltz
    A DOM element that the string engine manipulates.
    This class doesn't do much, but the exporter relies on
    comparing elements by reference so it's useful nonetheless.
    typeattrchildrenmarkup type_r   r   c                 C   s   || _ || _g | _|| _d S Nr   )selfr!   r   r    r$   _/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/draftjs_exporter/engines/string.py__init__$   s   
zElt.__init__returnc                 C   s   t dd | S )Nescaped_htmlr   r   r$   r$   r%   	from_html*   s   zElt.from_htmlN)r    )__name__
__module____qualname____doc__	__slots__r   r   r   r
   r&   staticmethodr+   r$   r$   r$   r%   r      s    r   c                   @   s   e Zd ZdZeddedee defddZ	ede
defd	d
ZedededdfddZededefddZedeee
ef  de
fddZedede
fddZedede
fddZdS )	DOMStringz=
    String concatenation implementation of the DOM API.
    Nr!   r   r'   c                 C   s
   t | |S r"   r)   )r!   r   r$   r$   r%   
create_tag4   s   
zDOMString.create_tagr   c                 C   s
   t | S )z
        Allows inserting arbitrary HTML into the exporter output.
        Treats the HTML as if it had been escaped and was safe already.
        )r   r+   r*   r$   r$   r%   
parse_html8   s   
zDOMString.parse_htmleltchildc                 C   s,   || j v o	t|t}|s| j | d S d S r"   )r   
isinstancer   append)r5   r6   is_existing_refr$   r$   r%   append_child@   s   zDOMString.append_childc                 C   s   dd |   D }d|S )Nc                 S   s&   g | ]\}}d | dt | dqS ) z=""r   ).0kvr$   r$   r%   
<listcomp>K   s   & z*DOMString.render_attrs.<locals>.<listcomp>r    )itemsjoin)r   attrsr$   r$   r%   render_attrsI   s   
zDOMString.render_attrsr   c                 C   s   d dd | D S )Nr    c                 S   s,   g | ]}t |trt|nt|d dqS )F)quote)r7   r   r2   renderr   )r=   cr$   r$   r%   r@   Q   s    z-DOMString.render_children.<locals>.<listcomp>)rB   )r   r$   r$   r%   render_childrenN   s
   zDOMString.render_childrenc                 C   s   | j }| jrt| jnd}| jrt| jnd}|dkr|S |tv r+d| | dS |dkr2| jS d| | d| d| dS )Nr    fragment</>r(   ></r   r   r2   rD   r   rH   VOID_ELEMENTSr   r5   r!   r   r   r$   r$   r%   rF   W   s   zDOMString.renderc                 C   st   | j }| jrt| jnd}| jrt| jnd}|tv r%d| | dS |dkr,| jS d| | d| d| dS )Nr    rJ   rK   r(   rL   rM   rN   rP   r$   r$   r%   render_debugh   s   zDOMString.render_debugr"   )r,   r-   r.   r/   r1   r   r   r   r   r3   r
   r4   r:   strrD   r   r   rH   rF   rQ   r$   r$   r$   r%   r2   /   s      r2   N)htmlr   typingr   r   r   r   draftjs_exporter.engines.baser   r	   draftjs_exporter.typesr
   r   rO   r   r2   r$   r$   r$   r%   <module>   s    