U
    uh,                     @   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)ZareabasebrcolZembedhrZimginputlinkmetaparamsourcetrackZwbrc                   @   s@   e Zd ZdZdZdeee edddZ	e
ed d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    g/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/draftjs_exporter/engines/string.py__init__$   s    zElt.__init__r   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eee edddZ	ee
edddZeeedd	d
dZeeedddZeeee
ef  e
dddZeee
dddZeee
dddZdS )	DOMStringz=
    String concatenation implementation of the DOM API.
    N)r   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childr$   c                 C   s(   || j kot|t}|s$| j | d S r   )r   
isinstancer   append)r2   r3   Zis_existing_refr    r    r!   append_child@   s    zDOMString.append_child)r   r$   c                 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_attrs)r   r$   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)r4   r   r/   renderr   )r9   cr    r    r!   r<   Q   s   z-DOMString.render_children.<locals>.<listcomp>)r>   )r   r    r    r!   render_childrenN   s
    zDOMString.render_children)r2   r$   c                 C   s   | j }| jrt| jnd}| jr.t| jnd}|dkr>|S |tkrVd| | dS |dkrd| jS d| | d| d| dS )Nr   fragment</>r%   ></r   r   r/   r@   r   rD   VOID_ELEMENTSr   r2   r   r   r   r    r    r!   rB   W   s    zDOMString.renderc                 C   st   | j }| jrt| jnd}| jr.t| jnd}|tkrJd| | dS |dkrX| jS d| | d| d| dS )Nr   rF   rG   r%   rH   rI   rJ   rL   r    r    r!   render_debugh   s    zDOMString.render_debug)N)r)   r*   r+   r,   r.   r   r   r   r   r0   r
   r1   r6   strr@   r   r   rD   rB   rM   r    r    r    r!   r/   /   s   r/   N)htmlr   typingr   r   r   r   Zdraftjs_exporter.engines.baser   r	   Zdraftjs_exporter.typesr
   r   rK   r   r/   r    r    r    r!   <module>   s   