
    >wgL                     :    d dl mZ  G d dej                        Zy)   )	xmlwriterc                   "    e Zd ZdZ fdZ	 	 	 d,dZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd-dZd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z- xZ.S ).Vmlz8
    A class for writing the Excel XLSX Vml file.


    c                 *    t         t        |           y)z
        Constructor.

        N)superr   __init__)self	__class__s    E/var/www/horilla/myenv/lib/python3.12/site-packages/xlsxwriter/vml.pyr   zVml.__init__   s     	c4!#    c                    d}| j                          | j                  |       |r4| j                          |D ]  }|dz  }| j                  |||       |dz  }! |r4| j	                          |D ]  }|dz  }| j                  |||       |dz  }! |r6| j                          d}	|D ]  }
|dz  }| j                  ||	|
       |	dz  }	! | j                  d       | j                          y )Nr   xml)
_write_xml_namespace_write_shapelayout_write_button_shapetype_write_button_shape_write_comment_shapetype_write_comment_shape_write_image_shapetype_write_image_shape_xml_end_tag
_xml_close)r	   data_idvml_shape_idcomments_databuttons_dataheader_images_dataz_indexbuttoncommentindeximages              r   _assemble_xml_filezVml._assemble_xml_file'   s    !!# 	(((*& !((wG1	 ))+( !)),I1	 '')E+ !''eUC
	 	%  	r   c                 J    |dd \  }}}}|dz  }|dz  }|dz  }|dz  }||||fS )N            ? )r	   verticeslefttopwidthheights         r   _pixels_to_pointszVml._pixels_to_points[   sM     $,Ab> c5& 	t$S%''r   c                 `    d}|dz   }|dz   }|dz   }d|fd|fd|fg}| j                  d|       y )	Nzurn:schemas-microsoft-com:vmlzoffice:officezoffice:excelzxmlns:vzxmlns:ozxmlns:xr   )_xml_start_tag)r	   schemaxmlnsxmlns_oxmlns_x
attributess         r   r   zVml._write_xml_namespacem   sW    -?*>)   

 	E:.r   c                 r    dg}| j                  d|       | j                  |       | j                  d       y )Nv:exteditzo:shapelayout)r1   _write_idmapr   r	   r   r6   s      r   r   zVml._write_shapelayout|   s8    '(
OZ8 	'"/*r   c                 4    dd|fg}| j                  d|       y )Nr8   datazo:idmap_xml_empty_tagr<   s      r   r;   zVml._write_idmap   s(     W


 	Iz2r   c                     d}d}d}d}d|fd|fd|fd|fg}| j                  d	|       | j                          | j                  d
d       | j                  d	       y )N_x0000_t20221600,21600   m,l,21600r21600,l21600,xeid	coordsizeo:sptpathv:shapetypetrect)r1   _write_stroke_write_comment_pathr   r	   shape_idrG   sptrI   r6   s         r   r   zVml._write_comment_shapetype   s}     !	* 8)$cNTN	

 	M:6 	 	  f--(r   c                     d}d}d}d}d|fd|fd|fd|fg}| j                  d	|       | j                          | j                          | j                          | j	                  d	       y )
N_x0000_t201rC      rE   rF   rG   rH   rI   rJ   )r1   rM   _write_button_path_write_shapetype_lockr   rO   s         r   r   zVml._write_button_shapetype   s     !	* 8)$cNTN	

 	M:6 	 	! 	""$-(r   c                    d}d}d}d}d}d}d}d|fd|fd	|fd
|fd|fd|fd|fg}| j                  d|       | j                          | j                          | j                          | j	                          | j                  d       y )N
_x0000_t75rC   K   rK   zm@4@5l@4@11@9@11@9@5xefrF   rG   rH   zo:preferrelativerI   filledstrokedrJ   )r1   rM   _write_formulas_write_image_path_write_aspect_ratio_lockr   )	r	   rP   rG   rQ   o_preferrelativerI   r[   r\   r6   s	            r   r   zVml._write_image_shapetype   s    !	' 8)$cN!12TNv 

 	M:6 	 	 	  	%%'-(r   c                 6    d}d|fg}| j                  d|       y )Nmiter	joinstylezv:stroker?   )r	   rc   r6   s      r   rM   zVml._write_stroke   s$    	"I./
J
3r   c                 x    g }|r|j                  d       |j                  d|f       | j                  d|       y )N)gradientshapeokrK   o:connecttypev:path)appendr@   )r	   re   connecttyper6   s       r   rN   zVml._write_comment_path   s<    
67?K89Hj1r   c                 ^    d}d}d}d}d}d|fd|fd|fd|fd|fg}| j                  d|       y )	NrZ   rL   shadowoko:extrusionokstrokeokfillokrf   rg   r?   )r	   rk   extrusionokrm   rn   ri   r6   s          r   rU   zVml._write_button_path   s^     "k*"vk*

 	Hj1r   c                 J    d}d}d}d|fd|fd|fg}| j                  d|       y )NrZ   rK   rL   rl   re   rf   rg   r?   )r	   ro   re   ri   r6   s        r   r^   zVml._write_image_path  sD     k*0k*

 	Hj1r   c                 @    d}d}d|fd|fg}| j                  d|       y )Nr:   rK   r9   	shapetypeo:lockr?   )r	   extrr   r6   s       r   rV   zVml._write_shapetype_lock  s6    	 cN)$


 	Hj1r   c                 @    d}d}d|fd|fg}| j                  d|       y )Nr:   rK   r9   rotationrs   r?   )r	   rt   rv   r6   s       r   _write_rotation_lockzVml._write_rotation_lock&  s6     cN"


 	Hj1r   c                 @    d}d}d|fd|fg}| j                  d|       y )Nr:   rK   r9   aspectratiors   r?   )r	   rt   ry   r6   s       r   r_   zVml._write_aspect_ratio_lock2  s6     cNK(


 	Hj1r   c                    d}d}d}dt        |      z   }|d   }|d   }|d   }	|d   }
|d	   }| j                  |      \  }}}}|	rd
}d||||||fz  }d|fd|fd|fd|
fd|fg}| j                  d|       | j                          | j	                          | j                  d d       | j                          | j                  |||	|       | j                  d       y )Nz#_x0000_t202autohidden_x0000_s    r         	   visibleznposition:absolute;margin-left:%.15gpt;margin-top:%.15gpt;width:%.15gpt;height:%.15gpt;z-index:%d;visibility:%srF   typestyle	fillcoloro:insetmodev:shapenone)	strr.   r1   _write_comment_fill_write_shadowrN   _write_comment_textbox_write_comment_client_datar   )r	   rP   r   r    
shape_type	insetmode
visibilityrowcolr   r   r)   r*   r+   r,   r-   r   r6   s                     r   r   zVml._write_comment_shape>  s8   #
	
 H- ajaj!*AJ	1:%)%;%;H%E"sE6 "J  $S%*MN 	 8Z e)$I&

 	Iz2 	  " 	 	  v. 	##% 	''S'8D)$r   c                 J   d}dt        |      z   }|d   }| j                  |      \  }}}}	d||||	|fz  }
d|fd|fg}|j                  d      r|j                  d|d   f       |j                  d	|
f       |j                  d
       |j                  d       |j                  d       |j                  d       | j	                  d|       | j                          | j                          | j                  |d          | j                  |       | j                  d       y )Nz#_x0000_t201r}   r)   zuposition:absolute;margin-left:%.15gpt;margin-top:%.15gpt;width:%.15gpt;height:%.15gpt;z-index:%d;mso-wrap-style:tightrF   r   descriptionaltr   )zo:buttonrK   )r   buttonFace [67])strokecolorzwindowText [64])r   r{   r   font)
r   r.   getrh   r1   _write_button_fillrw   _write_button_textbox_write_button_client_datar   )r	   rP   r   r   r   r)   r*   r+   r,   r-   r   r6   s               r   r   zVml._write_button_shapey  sH   #
 H-
 *%%)%;%;H%E"sE6# '+C%HI 	 8Z 


 ::m$uf]&;<=7E*++,:;<=12Iz2 	! 	!!# 	""6&>2 	&&v.)$r   c                    d}dt        |      z   }|d   }|d   }|d   }|d   }|d   }	|d   }
|d	   }|d
z  |	z  }|d
z  |
z  }dt        |dz  dz  dz         z  }dt        |dz  dz  dz         z  }d|||fz  }d|fd|fd|fd|fg}| j                  d|       | j                  ||       | j	                          | j                  d       y )Nz#_x0000_t75r}   r~   r         r   r      g      R@r'   g      X@H   g      ?zTposition:absolute;margin-left:0;margin-top:0;width:%.15gpt;height:%.15gpt;z-index:%drF   zo:spidr   r   r   )r   intr1   _write_imagedatarw   r   )r	   rP   r   
image_datar   r,   r-   namepositionx_dpiy_dpiref_idr   r6   s                 r   r   zVml._write_image_shape  s6   "
 H- 1A!}a=11A u$$& Cr 1D 899S$!3d!:;;
 "6734 	 8x Z e	

 	Iz2 	fd+ 	!!#)$r   c                 6    d}d|fg}| j                  d|       y )Nz#ffffe1color2v:fillr?   )r	   color_2r6   s      r   r   zVml._write_comment_fill  s$    )*
Hj1r   c                 @    d}d}d|fd|fg}| j                  d|       y )Nr   rK   r   zo:detectmouseclickr   r?   )r	   r   detectmouseclickr6   s       r   r   zVml._write_button_fill  s9    # w!#34


 	Hj1r   c                 J    d}d}d}d|fd|fd|fg}| j                  d|       y )NrK   blackoncolorobscuredzv:shadowr?   )r	   r   r   r   r6   s        r   r   zVml._write_shadow  sC     2Je"

 	J
3r   c                 z    d}d|fg}| j                  d|       | j                  d       | j                  d       y )Nmso-direction-alt:autor   	v:textboxr*   r1   
_write_divr   )r	   r   r6   s      r   r   zVml._write_comment_textbox  s@    (&'
K4 	+&r   c                 ~    d}d|fdg}| j                  d|       | j                  d|       | j                  d       y )Nr   r   )zo:singleclickrZ   r   centerr   )r	   r   r   r6   s       r   r   zVml._write_button_textbox  sE    (&(>?
K4 	$'+&r   c                     d|z   }d|fg}| j                  d|       |r| j                  |       | j                  d       y )Nztext-align:r   div)r1   _write_fontr   )r	   alignr   r   r6   s        r   r   zVml._write_div  sJ     %&'
E:.T"% r   c                 V    |d   }d}d}d}d|fd|fd|fg}| j                  d||       y )	NcaptionCalibri   z#000000facesizer   r   _xml_data_element)r	   r   r   r   r   r   r6   s          r   r   zVml._write_font,  sM    y/ TNTNe

 	vw
;r   c                 B   d}d|fg}| j                  d|       | j                          | j                          | j                  |       | j	                          | j                  |       | j                  |       |r| j                          | j                  d       y )NNote
ObjectTypex:ClientData)	r1   _write_move_with_cells_write_size_with_cells_write_anchor_write_auto_fill
_write_row_write_column_write_visibler   )r	   r   r   r   r)   object_typer6   s          r   r   zVml._write_comment_client_data;  s    #[12
NJ7 	##% 	##% 	8$ 	 	 	3 !.)r   c                 0   |d   }|d   }d}d|fg}| j                  d|       | j                  |       | j                          | j                          | j	                  |       | j                          | j                          | j                  d       y )Nmacror)   Buttonr   r   )r1   r   _write_print_objectr   _write_fmla_macro_write_text_halign_write_text_valignr   )r	   r   r   r)   r   r6   s         r   r   zVml._write_button_client_data[  s    w*%#[12
NJ7 	8$ 	  " 	 	u% 	! 	!.)r   c                 &    | j                  d       y )Nzx:MoveWithCellsr?   r	   s    r   r   zVml._write_move_with_cellsz      -.r   c                 &    | j                  d       y )Nzx:SizeWithCellsr?   r   s    r   r   zVml._write_size_with_cells~  r   r   c                 &    | j                  d       y )Nz	x:Visibler?   r   s    r   r   zVml._write_visible  s    K(r   c                     |d d \  }}}}}}}}	||||||||	g}
|
D cg c]  }t        |       }
}dj                  |
      }| j                  d|       y c c}w )Nr%   z, zx:Anchor)r   joinr   )r	   r)   	col_start	row_startx1y1col_endrow_endx2y2stringsir>   s                r   r   zVml._write_anchor  sn    CKBQ<@Ir2wRb)R"grJ#*+a3q6++yy!z40	 ,s   Ac                 ,    d}| j                  d|       y )NFalsez
x:AutoFillr   r	   r>   s     r   r   zVml._write_auto_fill  s    |T2r   c                 (    | j                  d|       y )Nzx:Rowr   r   s     r   r   zVml._write_row  s    w-r   c                 (    | j                  d|       y )Nzx:Columnr   r   s     r   r   zVml._write_column  s    z40r   c                 (    | j                  dd       y )Nzx:PrintObjectr   r   r   s    r   r   zVml._write_print_object  s    8r   c                 (    | j                  dd       y )Nzx:TextHAlignCenterr   r   s    r   r   zVml._write_text_halign      ~x8r   c                 (    | j                  dd       y )Nzx:TextVAlignr   r   r   s    r   r   zVml._write_text_valign  r   r   c                 (    | j                  d|       y )Nzx:FmlaMacror   r   s     r   r   zVml._write_fmla_macro  s    }d3r   c                 P    ddt        |      z   fd|fg}| j                  d|       y )Nzo:relidrIdzo:titlezv:imagedata)r   r@   )r	   r   o_titler6   s       r   r   zVml._write_imagedata  s6     F+, 


 	M:6r   c                    | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d	       | j                  d
       | j                  d       | j                  d       | j                  d       | j                  d       y )Nz
v:formulaszif lineDrawn pixelLineWidth 0z
sum @0 1 0z
sum 0 0 @1zprod @2 1 2zprod @3 21600 pixelWidthzprod @3 21600 pixelHeightz
sum @0 0 1zprod @6 1 2zprod @7 21600 pixelWidthzsum @8 21600 0zprod @7 21600 pixelHeightzsum @10 21600 0)r1   _write_formular   r   s    r   r]   zVml._write_formulas  s    L) 	;<L)L)M*6778L)M*67,-78-.,'r   c                 2    d|fg}| j                  d|       y )Neqnzv:fr?   )r	   r   r6   s      r   r   zVml._write_formula  s    cl^
E:.r   )NNN)N)/__name__
__module____qualname____doc__r   r#   r.   r   r   r;   r   r   r   rM   rN   rU   r^   rV   rw   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r]   r   __classcell__)r
   s   @r   r   r      s    $" 2h($/	+3)0)6")H4	22$2
2
2
29%v4%l0%d2
24''!<*@*>//)	13.199947((/r   r   N) r   	XMLwriterr   r(   r   r   <module>r     s    C/)

 C/r   