
    hi3                    F   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZmZmZmZ ddlmZmZmZ er
ddlmZmZmZ  G d de          Z  G d de          Z! G d de          Z" G d de          Z# G d de          Z$dS )zBlxml custom element class for CT_GraphicalObjectFrame XML element.    )annotations)TYPE_CHECKINGcast)	parse_xml)CT_Chart)nsdecls)BaseShapeElement)
XsdBoolean	XsdString)CT_Table)BaseOxmlElementOneAndOnlyOneOptionalAttributeRequiredAttribute	ZeroOrOne)GRAPHIC_DATA_URI_CHARTGRAPHIC_DATA_URI_OLEOBJGRAPHIC_DATA_URI_TABLE)#CT_ApplicationNonVisualDrawingPropsCT_NonVisualDrawingPropsCT_Transform2Dc                  L    e Zd ZU dZ ed          Zded<   ed	d            ZdS )
CT_GraphicalObjectz`a:graphic` element.

    The container for the reference to or definition of the framed graphical object (table, chart,
    etc.).
    za:graphicDataCT_GraphicalObjectDatagraphicDatareturnCT_Chart | Nonec                    | j         j        S )z;The `c:chart` grandchild element, or |None| if not present.)r   chartselfs    q/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/pptx/oxml/shapes/graphfrm.pyr   zCT_GraphicalObject.chart-   s     %%    Nr   r   )	__name__
__module____qualname____doc__r   r   __annotations__propertyr    r#   r"   r   r   "   sj           +8-+ +K     & & & X& & &r#   r   c                      e Zd ZU dZ ed          Zded<    ed          Zded<    ede	          Z
d	ed<   edd            Zedd            Zedd            Zedd            Zedd            ZdS )r   zj`p:graphicData` element.

    The direct container for a table, a chart, or another graphical object.
    zc:chartr   r   za:tblzCT_Table | Nonetbluristrr   
str | Nonec                ,    | j         dn| j         j        S )a  Optional `r:id` attribute value of `p:oleObj` descendent element.

        This value is `None` when this `p:graphicData` element does not enclose an OLE object.
        This value could also be `None` if an enclosed OLE object does not specify this attribute
        (it is specified optional in the schema) but so far, all OLE objects we've encountered
        specify this value.
        N)_oleObjrIdr    s    r"   blob_rIdzCT_GraphicalObjectData.blob_rId=   s     |+tt1AAr#   bool | Nonec                ,    | j         dn| j         j        S )zOptional boolean indicating an embedded OLE object.

        Returns `None` when this `p:graphicData` element does not enclose an OLE object. `True`
        indicates an embedded OLE object and `False` indicates a linked OLE object.
        N)r2   is_embeddedr    s    r"   is_embedded_ole_objz*CT_GraphicalObjectData.is_embedded_ole_objH   s     |+tt1IIr#   c                ,    | j         dn| j         j        S )a  Optional str value of "progId" attribute of `p:oleObj` descendent.

        This value identifies the "type" of the embedded object in terms of the application used
        to open it.

        This value is `None` when this `p:graphicData` element does not enclose an OLE object.
        This could also be `None` if an enclosed OLE object does not specify this attribute (it is
        specified optional in the schema) but so far, all OLE objects we've encountered specify
        this value.
        N)r2   progIdr    s    r"   r:   zCT_GraphicalObjectData.progIdQ   s     |+tt1DDr#   c                ,    | j         dn| j         j        S )a  Optional value of "showAsIcon" attribute value of `p:oleObj` descendent.

        This value is `None` when this `p:graphicData` element does not enclose an OLE object. It
        is False when the `showAsIcon` attribute is omitted on the `p:oleObj` element.
        N)r2   
showAsIconr    s    r"   r<   z!CT_GraphicalObjectData.showAsIcon_   s     |+tt1HHr#   CT_OleObject | Nonec                `    t          d|                     d                    }|r|d         ndS )a?  Optional `p:oleObj` element contained in this `p:graphicData' element.

        Returns `None` when this graphic-data element does not enclose an OLE object. Note that
        this returns the last `p:oleObj` element found. There can be more than one `p:oleObj`
        element because an `mc.AlternateContent` element may appear as the child of
        `p:graphicData` and that alternate-content subtree can contain multiple compatibility
        choices. The last one should suit best for reading purposes because it contains the lowest
        common denominator.
        zlist[CT_OleObject]z.//p:oleObjN)r   xpath)r!   oleObjss     r"   r2   zCT_GraphicalObjectData._oleObjh   s3     +TZZ-F-FGG%/wr{{4/r#   Nr   r0   r   r5   )r   r=   )r%   r&   r'   r(   r   r   r)   r-   r   r   r.   r*   r4   r8   r:   r<   r2   r+   r#   r"   r   r   3   s$         
 'Yy11E1111$9W--C----  	22C2222B B B XB J J J XJ E E E XE I I I XI 0 0 0 X0 0 0r#   r   c                  l   e Zd ZU dZ ed          Zded<    ed          Zded<    ed          Zd	ed
<   e	d-d            Z
e	d.d            Zd/dZe	d0d            Ze	d1d            Ze	d2d            Ze	d3d            Zed4d!            Zed5d"            Zed6d(            Zed7d+            Zd,S )8CT_GraphicalObjectFramezb`p:graphicFrame` element.

    A container for a table, a chart, or another graphical object.
    zp:nvGraphicFramePr CT_GraphicalObjectFrameNonVisualnvGraphicFramePrzp:xfrmr   xfrmz	a:graphicr   graphicr   r   c                    | j         j        S )zAThe `c:chart` great-grandchild element, or |None| if not present.)rI   r   r    s    r"   r   zCT_GraphicalObjectFrame.chart   s     |!!r#   r0   c                &    | j         }|dS |j        S )zgThe `rId` attribute of the `c:chart` great-grandchild element.

        |None| if not present.
        N)r   r3   )r!   r   s     r"   	chart_rIdz!CT_GraphicalObjectFrame.chart_rId   s     
=4yr#   c                    | j         S )zdReturn the required `p:xfrm` child element.

        Overrides version on BaseShapeElement.
        )rH   r    s    r"   get_or_add_xfrmz'CT_GraphicalObjectFrame.get_or_add_xfrm   s    
 yr#   r   c                    | j         j        S )z9`a:graphicData` grandchild of this graphic-frame element.)rI   r   r    s    r"   r   z#CT_GraphicalObjectFrame.graphicData   s     |''r#   r/   c                $    | j         j        j        S )z;str value of `uri` attribute of `a:graphicData` grandchild.)rI   r   r.   r    s    r"   graphicData_uriz'CT_GraphicalObjectFrame.graphicData_uri   s     |'++r#   boolc                ,    | j         j        t          k    S )zD`True` for graphicFrame containing an OLE object, `False` otherwise.)r   r.   r   r    s    r"   
has_oleobjz"CT_GraphicalObjectFrame.has_oleobj   s     #'>>>r#   r5   c                    | j         j        S )zOptional boolean indicating an embedded OLE object.

        Returns `None` when this `p:graphicFrame` element does not enclose an OLE object. `True`
        indicates an embedded OLE object and `False` indicates a linked OLE object.
        )r   r8   r    s    r"   r8   z+CT_GraphicalObjectFrame.is_embedded_ole_obj   s     33r#   id_intnamer3   xycxcyc                    t                               ||||||          }|j        j        }	t          |	_        |	                    t          j        |                     |S )zFReturn a `p:graphicFrame` element tree populated with a chart element.)	rE   new_graphicFramerI   r   r   r.   appendr   	new_chart)
clsrV   rX   r3   rY   rZ   r[   r\   graphicFramer   s
             r"   new_chart_graphicFramez.CT_GraphicalObjectFrame.new_chart_graphicFrame   sZ    
 /??T1aQSUWXX"*608-c22333r#   c                    t          t          t          dt          dd           d| d| d| d| d| d	| d
                    S )zReturn a new `p:graphicFrame` element tree suitable for containing a table or chart.

        Note that a graphicFrame element is not a valid shape until it contains a graphical object
        such as a table.
        <p:graphicFrame ap*>
  <p:nvGraphicFramePr>
    <p:cNvPr id="" name=""/>
    <p:cNvGraphicFramePr>
      <a:graphicFrameLocks noGrp="1"/>
    </p:cNvGraphicFramePr>
    <p:nvPr/>
  </p:nvGraphicFramePr>
  <p:xfrm>
    <a:off x="" y=""/>
    <a:ext cx="" cy="zS"/>
  </p:xfrm>
  <a:graphic>
    <a:graphicData/>
  </a:graphic>
</p:graphicFrame>)r   rE   r   r   )ra   rV   rX   rY   rZ   r[   r\   s          r"   r^   z(CT_GraphicalObjectFrame.new_graphicFrame   s     #%73#4#4 % %$'% %15% % "#% % *+% % #%% % -/% % % 
 
 	
r#   ole_object_rIdr:   icon_rIdimgWimgHc                .   t          t          t          d                    g dt	          ddd           d| d| d| d	| d
| d|	 d| d|
 d| d| d| d| d	| d| d|	 d                              S )a  Return newly-created `p:graphicFrame` for embedded OLE-object.

        `ole_object_rId` identifies the relationship to the OLE-object part.

        `progId` is a str identifying the object-type in terms of the application (program) used
        to open it. This becomes an attribute of the same name in the `p:oleObj` element.

        `icon_rId` identifies the relationship to an image part used to display the OLE-object as
        an icon (vs. a preview).
         re   rf   rg   rrh   ri   rj   rk   rl   rm   z"/>
  </p:xfrm>
  <a:graphic>
    <a:graphicData        uri="http://schemas.openxmlformats.org/presentationml/2006/ole">
      <p:oleObj showAsIcon="1"                r:id="z"                imgW="z"                imgH="z"                progId="z">
        <p:embed/>
        <p:pic>
          <p:nvPicPr>
            <p:cNvPr id="0" name=""/>
            <p:cNvPicPr/>
            <p:nvPr/>
          </p:nvPicPr>
          <p:blipFill>
            <a:blip r:embed="z"/>
            <a:stretch>
              <a:fillRect/>
            </a:stretch>
          </p:blipFill>
          <p:spPr>
            <a:xfrm>
              <a:off x="z"/>
              <a:ext cx="z"/>
            </a:xfrm>
            <a:prstGeom prst="rect">
              <a:avLst/>
            </a:prstGeom>
          </p:spPr>
        </p:pic>
      </p:oleObj>
    </a:graphicData>
  </a:graphic>
</p:graphicFrame>)r   rE   r   joinr   )ra   rV   rX   rn   r:   ro   rY   rZ   r[   r\   rp   rq   s               r"   new_ole_object_graphicFramez3CT_GraphicalObjectFrame.new_ole_object_graphicFrame   s   2 #.% .% .% .% .% .%73S#9#9 .% .% .% .%$'.% .% .% .%15.% .% .% .% "#.% .% .% .% *+.% .% .% .% #%.% .% .% .% -/.% .% .% .%  *8!.% .% .% .%" *.#.% .% .% .%$ *.%.% .% .% .%& ,2'.% .% .% .%8 199.% .% .% .%F ,-G.% .% .% .%F 45G.% .% .% .%H -/I.% .% .% .%H 79I.% .% .% .% .% .%0 03
 3
 3	
r#   rowscolsc	                    |                      ||||||          }	t          |	j        j        _        |	j        j                            t          j        ||||                     |	S )zFReturn a `p:graphicFrame` element tree populated with a table element.)r^   r   rI   r   r.   r_   r   new_tbl)
ra   rV   rX   rw   rx   rY   rZ   r[   r\   rb   s
             r"   new_table_graphicFramez.CT_GraphicalObjectFrame.new_table_graphicFrame,  sa    
 ++Cq!RDD/E(,(//0@tRQS0T0TUUUr#   Nr$   rB   )r   r   )r   r   )r   r/   r   rR   rC   )rV   rW   rX   r/   r3   r/   rY   rW   rZ   rW   r[   rW   r\   rW   r   rE   )rV   rW   rX   r/   rY   rW   rZ   rW   r[   rW   r\   rW   r   rE   )rV   rW   rX   r/   rn   r/   r:   r/   ro   r/   rY   rW   rZ   rW   r[   rW   r\   rW   rp   rW   rq   rW   r   rE   )rV   rW   rX   r/   rw   rW   rx   rW   rY   rW   rZ   rW   r[   rW   r\   rW   r   rE   )r%   r&   r'   r(   r   rG   r)   rH   rI   r*   r   rL   rN   r   rQ   rT   r8   classmethodrc   r^   rv   r{   r+   r#   r"   rE   rE   w   s          	*++      )=22D2222"/-# #G     " " " X"    X    ( ( ( X( , , , X, ? ? ? X? 4 4 4 X4    [ 
 
 
 [
< K
 K
 K
 [K
Z    [  r#   rE   c                  T    e Zd ZU dZ ed          Zded<    ed          Zded<   dS )	rF   zz`p:nvGraphicFramePr` element.

    This contains the non-visual properties of a graphic frame, such as name, id, etc.
    zp:cNvPrr   cNvPrzp:nvPrr   nvPrN)r%   r&   r'   r(   r   r   r)   r   r+   r#   r"   rF   rF   7  sr          
 '4m' 'E     	h 	      r#   rF   c                      e Zd ZU dZ ede          Zded<    ede          Zded<    ede	d          Z
d	ed<   edd            ZdS )CT_OleObjectz`p:oleObj` element, container for an OLE object (e.g. Excel file).

    An OLE object can be either linked or embedded (hence the name).
    r:   r0   zr:idr3   r<   F)defaultrR   r   c                N    t          |                     d                    dk    S )z?True when this OLE object is embedded, False when it is linked.z	./p:embedr   )lenr@   r    s    r"   r7   zCT_OleObject.is_embeddedS  s#     4::k**++a//r#   Nr|   )r%   r&   r'   r(   r   r   r:   r)   r3   r
   r<   r*   r7   r+   r#   r"   r   r   E  s          
 +*) F     ('	::C::::((j%  J     0 0 0 X0 0 0r#   r   N)%r(   
__future__r   typingr   r   	pptx.oxmlr   pptx.oxml.chart.chartr   pptx.oxml.nsr   pptx.oxml.shapes.sharedr	   pptx.oxml.simpletypesr
   r   pptx.oxml.tabler   pptx.oxml.xmlchemyr   r   r   r   r   	pptx.specr   r   r   r   r   r   r   r   rE   rF   r   r+   r#   r"   <module>r      sK   H H " " " " " " & & & & & & & &       * * * * * *             4 4 4 4 4 4 7 7 7 7 7 7 7 7 $ $ $ $ $ $                                 & & & & & & & &"A0 A0 A0 A0 A0- A0 A0 A0H} } } } }. } } }@       0 0 0 0 0? 0 0 0 0 0r#   