B
    p[                 @   s\   d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
Z
 ddlmZ G dd	 d	eZd
S )zContains the DOMWidget class    )Unicode   )Widgetwidget_serialization)InstanceDict
TypedTuple)Layout)Stylec                   sn   e Zd ZdZedjddZee ddjddZe	e
jf ddieZdd	 Zd
d Z fddZ  ZS )	DOMWidgetz(Widget that can be inserted into the DOMZDOMWidgetModelT)syncz)CSS classes applied to widget DOM element)Ztraithelpr   c             C   s    || j krt| j |g | _ | S )z{
        Adds a class to the top level element of the widget.

        Doesn't add the class if it already exists.
        )_dom_classeslist)self	className r   ;lib/python3.7/site-packages/ipywidgets/widgets/domwidget.py	add_class   s    
zDOMWidget.add_classc                s$    | j kr  fdd| j D | _ | S )z
        Removes a class from the top level element of the widget.

        Doesn't remove the class if it doesn't exist.
        c                s   g | ]}| kr|qS r   r   ).0c)r   r   r   
<listcomp>%   s    z*DOMWidget.remove_class.<locals>.<listcomp>)r   )r   r   r   )r   r   remove_class   s    
zDOMWidget.remove_classc             #   sV   xDt t|  D ]2}|dkr<t| |}t|d|jj kr<q|V  qW | jrRdV  d S )Nlayoutz%s()r   )superr
   
_repr_keysgetattrrepr	__class____name__r   )r   keyvalue)r   r   r   r   (   s    

zDOMWidget._repr_keys)r   
__module____qualname____doc__r   tagZ_model_namer   r   r   r   r   r   r   r   r   __classcell__r   r   )r   r   r
      s   

r
   N)r#   Z	traitletsr   Zwidgetr   r   Ztrait_typesr   r   Zwidget_layoutr   Zwidget_styler	   r
   r   r   r   r   <module>   s   