B
     ra                  @   s  d dl Zd dlZd dlmZmZmZ d dl Zd dlZddl	m	Z	 d dl
Zd dlmZ d dlmZ e Zg Zg ZxLe  D ]<\ZZeed eed d eed eed d q|W eeje	d	d
didejejejdddddddgdddgddejdddgddejdejdddejddd d!gd"d#d$ggZeedd%ed&d'ed(d'ed)d'ed*d'gd+d, e D  d-d. Zeedd/edd0edd1gd2d3 Zeedd4edd/gedd5edd6gedd4gd7d8 ZdS )9    N)InputOutputState   )option_comps)app)	datastorepretty_name)labelvalueZprimaryTextzflex-boxzmargin-bottomz0.5%)	classNamestylez	main-plotTZselect2dZlasso2dZautoScale2dZtoggleSpikelinesZhoverCompareCartesian)Z
scrollZoomZmodeBarButtonsToRemove
responsive)idconfig )r   zradio-over-xray)r   r   zflex-box-main-plotzclick-info-dialogzmain-info-contentzmax-width scroll max-height-500z
close-diagClosetext)r   childrenvariantFzdialog-max-width)r   r   openr   figurezx-axis-dropdownr   zy-axis-dropdownzscaling-dropdownzcategory-color-dropdownc             C   s   g | ]}t |d  dqS )r
   checked)r   ).0i r   4/var/www/atlasX/components/tabs/interactive_plots.py
<listcomp>i   s    r   c          	   G   s>  t   t  }xNt|ddD ]>\}}|r|| d }tt |rNtt |  qtd| qW t  }	t 	 }||j
| k d jd }
||j
|k d jd }|d kri nt |}|d kri nt |}||}|	|  |	| dd||	d d	gd
|
d | id
|
idddddd
|iddddddddddddddS )Nr   )startr   zData store has no attribute {0}r	   ZscattermarkersName)xytypemodemarkerr   r   z vs. T   z#636363)titleZshowlineZ	linewidthZ	linecolorZzeroline7   )lbrteventZclosest)r'   xaxisyaxismarginZ	clickmodeZ	hovermode)datalayout)dsZreset_filtersget_filters	enumeratehasattrgetattrprintformatget_filtered_dataZget_col_attributesindexvaluesZget_marker_scaling_optionsZget_cat_color)r.   r/   ZscaleZ	cat_colorZchecked_filtersfiltersr   Zis_filter_checkedattrdfZxtitleZytitleZmarker_optionsZcolor_optionsr   r   r   update_axes_   sN    
r@   r   	hoverDatarelayoutDatac          	   C   s   | d k	rt | d dkr| d d d }t }td|}||d |k jd d rtjtjt|gddid	tjtj	t
d
|ddgddid	gdddid}|S dS d S )Npointsr   r   z#No information is available for {0}r    radio_over_xrayz
text-aligncenter)r   z&data_downloads/{0}/radio_over_xray.pngz	img-hover)srcr   r0   autozflex-boxzflex-directioncolumn)r   r   z.Hover over any data point to display the image)lenr3   r:   htmlH3r9   ilocDivH4Imgr   get_asset_url)rA   Zrelayoutsourcer?   childr   r   r   display_image_on_hover   s&    


rS   r   	clickDatan_clicksc             C   s   g }|r|rdS t | d dks.t |dkr|st }d}d}t |dkrb|j|d  d }t | d dkr| d d d }||d |k jd d }td	|}|rtjtjtjt	
d
|ddddgddidtjtt|ggddidgdddid}d|fS d S )N)Fr   rC   r   r   FrD   r   r    z#No information is available for {0}z&data_downloads/{0}/radio_over_xray.pngZ500pxz100%)z
max-heightz	max-width)rF   r   r0   z0 auto)r   zflex-boxzflex-directionrH   )r   r   T)rI   r3   r:   rL   rJ   rK   r9   rM   rO   r   rP   Zget_source_table)rT   Z
closeClickZdiagOpenZselectedRowsr?   rQ   rD   rR   r   r   r   display_info_dialog   s8    $

rV   ) dash_core_componentsdccjsondash.dependenciesr   r   r   dash_html_componentsrJ   r   sd_material_uismuir   r   r3   Zx_axis_optionsZy_axis_optionsZget_valid_axesZiterrowsr;   rowappendrM   GraphDialogButtonr2   callbackr4   r@   rS   rV   r   r   r   r   <module>   s|   
F%

