ó
    ˆ*£h%,  ã                  óÒ  • S r SSKJr  SSKJrJrJr  SSKJrJ	r	  SSK
Jr  SSKJr  SSKJr  SSKJrJrJrJrJrJrJrJr  \(       a  SS	KJr   " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S S\5      r" " S S\5      r# " S S\5      r$ " S S\5      r% " S  S!\5      r& " S" S#\5      r' " S$ S%\5      r(g&)'zBSlide-related custom element classes, including those for masters.é    )Úannotations)ÚTYPE_CHECKINGÚCallableÚcast)Úparse_from_templateÚ	parse_xml)ÚCT_GradientFillProperties©Únsdecls)Ú	XsdString)ÚBaseOxmlElementÚChoiceÚOneAndOnlyOneÚOptionalAttributeÚRequiredAttributeÚ
ZeroOrMoreÚ	ZeroOrOneÚZeroOrOneChoice)ÚCT_GroupShapec                  ó8   • \ rS rSr% SrS\S'   \SS j5       rSrg)	Ú_BaseSlideElementé   z=Base class for the six slide types, providing common methods.ÚCT_CommonSlideDataÚcSldc                ó.   • U R                   R                  $ )z-Return required `p:cSld/p:spTree` grandchild.)r   ÚspTree©Úselfs    ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pptx/oxml/slide.pyr   Ú_BaseSlideElement.spTree   s   € ð �y‰y×ÑÐó    © N)Úreturnr   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Úpropertyr   Ú__static_attributes__r"   r!   r   r   r      s   ‡ ÙGà
Óàó ó ó r!   r   c                  óV   • \ rS rSr% SrS\S'   Sr\" SSS9rS	\S
'   \" SSS9r	CS r
Srg)ÚCT_Backgroundé%   z`p:bg` element.z)Callable[[CT_BackgroundProperties], None]Ú_insert_bgPr)úp:bgPrúp:bgRefr0   r"   ©Ú
successorszCT_BackgroundProperties | NoneÚbgPrr1   c                óx   • S[        SS5      -  n[        [        [        U5      5      nU R	                  U5        U$ )z5Return a new `p:bgPr` element with noFill properties.z4<p:bgPr %s>
  <a:noFill/>
  <a:effectLst/>
</p:bgPr>ÚaÚp)r   r   ÚCT_BackgroundPropertiesr   r/   )r   Úxmlr4   s      r   Úadd_noFill_bgPrÚCT_Background.add_noFill_bgPr3   s:   € àPÔSZÐ[^Ð`cÓSdÑdˆÜÔ+¬Y°s«^Ó<ˆØ×Ñ˜$ÔØˆr!   N)r$   r%   r&   r'   r(   r)   Ú_tag_seqr   r4   ÚbgRefr:   r+   r"   r!   r   r-   r-   %   s?   ‡ Ùà;Ó;ð %€HÙ+4Ø˜Rñ,€DÐ
(ó ñ �i¨BÑ/€EØõr!   r-   c            
      óŒ   • \ rS rSrSrSr\" \" S5      \" S5      \" S5      \" S5      \" S5      \" S	5      4\S
S S9rCS r	Sr
g)r8   é;   z`p:bgPr` element.)	úa:noFillúa:solidFillú
a:gradFillú
a:blipFillú
a:pattFillú	a:grpFillza:effectLstza:effectDagza:extLstr@   rA   rB   rC   rD   rE   é   Nr2   c                ó,   • [         R                  " 5       $ )z1Override default to add default gradient subtree.)r	   Únew_gradFillr   s    r   Ú_new_gradFillÚ%CT_BackgroundProperties._new_gradFillV   s   € ä(×5Ò5Ó7Ð7r!   r"   )r$   r%   r&   r'   r(   r<   r   r   Úeg_fillPropertiesrI   r+   r"   r!   r   r8   r8   ;   sc   † Ùð
€Hñ (á�:ÓÙ�=Ó!Ù�<Ó Ù�<Ó Ù�<Ó Ù�;Óð	
ð ˜A˜B�<ñ
Ðð 	õ8r!   r8   c                  óš   • \ rS rSr% SrS\S'   S\S'   Sr\" S\S	S
 S9rS\S'   \	" S5      r
S\S'   C\" S\SS9rS\S'   SS jrSS jrSrg
)r   é[   z`p:cSld` element.zCallable[[], None]Ú
_remove_bgzCallable[[], CT_Background]Úget_or_add_bg)úp:bgúp:spTreezp:custDataLstz
p:controlsúp:extLstrP   é   Nr2   zCT_Background | NoneÚbgrQ   r   r   ÚnameÚ )ÚdefaultÚstrc                óŽ   • U R                   nUb  UR                  c  U R                  5       n[        [        UR                  5      $ )z§Return `p:bg/p:bgPr` grandchild.

If no such grandchild is present, any existing `p:bg` child is first removed and a new
default `p:bg` with noFill settings is added.
)rT   r4   Ú_change_to_noFill_bgr   r8   ©r   rT   s     r   Úget_or_add_bgPrÚ"CT_CommonSlideData.get_or_add_bgPrk   s:   € ð �W‰WˆØ‰:˜Ÿ™™Ø×*Ñ*Ó,ˆBÜÔ+¨R¯W©WÓ5Ð5r!   c                óf   • U R                  5         U R                  5       nUR                  5         U$ )z]Establish a `p:bg` child with no-fill settings.

Any existing `p:bg` child is first removed.
)rN   rO   r:   r[   s     r   rZ   Ú'CT_CommonSlideData._change_to_noFill_bgv   s-   € ð
 	�‰ÔØ×ÑÓ!ˆØ
×ÑÔØˆ	r!   r"   )r#   r8   )r#   r-   )r$   r%   r&   r'   r(   r)   r<   r   rT   r   r   r   r   rU   r\   rZ   r+   r"   r!   r   r   r   [   si   ‡ Ùà"Ó"Ø.Ó.àN€HÙ(Ø˜8 A B˜<ñ €BÐó ñ *¨*Ó5€FˆMÓ5ØÙ!Ø�	 2ñ€Dˆ#ó ô	6÷r!   r   c                  óN   • \ rS rSr% SrSr\" S5      rS\S'   C\	S
S j5       r
Srg	)ÚCT_NotesMasteré�   z5`p:notesMaster` element, root of a notes master part.)úp:cSldúp:clrMapúp:hfzp:notesStylerR   rc   r   r   c                ó4   • [        [        [        S5      5      $ )zLReturn a new `p:notesMaster` element based on the built-in default template.ÚnotesMaster)r   ra   r   ©Úclss    r   Únew_defaultÚCT_NotesMaster.new_defaultˆ   s   € ô ”NÔ$7¸Ó$FÓGÐGr!   r"   N)r#   ra   )r$   r%   r&   r'   r(   r<   r   r   r)   Úclassmethodrj   r+   r"   r!   r   ra   ra   �   s1   ‡ Ù?àI€HÙ,¨XÓ6€DÐ
Ó6ØàóHó óHr!   ra   c                  óN   • \ rS rSr% SrSr\" S5      rS\S'   C\	S
S j5       r
Srg	)ÚCT_NotesSlideéŽ   z.`p:notes` element, root of a notes slide part.)rc   úp:clrMapOvrrR   rc   r   r   c                ó4   • [        [        [        S5      5      $ )z²Return a new ``<p:notes>`` element based on the default template.

Note that the template does not include placeholders, which must be subsequently cloned
from the notes master.
Únotes)r   rn   r   rh   s    r   ÚnewÚCT_NotesSlide.new•   s   € ô ”MÔ#6°wÓ#?Ó@Ð@r!   r"   N)r#   rn   )r$   r%   r&   r'   r(   r<   r   r   r)   rl   rs   r+   r"   r!   r   rn   rn   Ž   s1   ‡ Ù8à4€HÙ,¨XÓ6€DÐ
Ó6ØàóAó óAr!   rn   c                  óÂ   • \ rS rSr% SrSr\" S5      rS\S'   \	" S\SS	 S
9r
\	" S\SS	 S
9rC\SS j5       r\S 5       rS rS r\S 5       r\S 5       r\S 5       rSrg	)ÚCT_SlideéŸ   z=`p:sld` element, root element of a slide part (XML document).)rc   rp   úp:transitionúp:timingrR   rc   r   r   rp   é   Nr2   ry   é   c                óP   • [        [        [        U R                  5       5      5      $ )z:Return new `p:sld` element configured as base slide shape.)r   rv   r   Ú_sld_xmlrh   s    r   rs   ÚCT_Slide.new¨   s   € ô ”Hœi¨¯©«Ó7Ó8Ð8r!   c                ó.   • U R                   R                  $ )z0Return `p:bg` grandchild or None if not present.)r   rT   r   s    r   rT   ÚCT_Slide.bg­   s   € ð �y‰y�|‰|Ðr!   c                óD   • U R                   nUc  U R                  5       nU$ )a]  Return parent element for a new `p:video` child element.

The `p:video` element causes play controls to appear under a video
shape (pic shape containing video). There can be more than one video
shape on a slide, which causes the precondition to vary. It needs to
handle the case when there is no `p:sld/p:timing` element and when
that element already exists. If the case isn't simple, it just nukes
what's there and adds a fresh one. This could theoretically remove
desired existing timing information, but there isn't any evidence
available to me one way or the other, so I've taken the simple
approach.
)Ú_childTnLstÚ_add_childTnLst)r   Ú
childTnLsts     r   Úget_or_add_childTnLstÚCT_Slide.get_or_add_childTnLst²   s)   € ð ×%Ñ%ˆ
ØÑØ×-Ñ-Ó/ˆJØÐr!   c                ó¼   • U R                  U R                  5       5        [        U R                  5       5      nU R	                  U5        UR                  S5      S   $ )z‰Add `./p:timing/p:tnLst/p:par/p:cTn/p:childTnLst` descendant.

Any existing `p:timing` child element is ruthlessly removed and
replaced.
z"./p:tnLst/p:par/p:cTn/p:childTnLstr   )ÚremoveÚget_or_add_timingr   Ú_childTnLst_timing_xmlÚ_insert_timingÚxpath)r   Útimings     r   rƒ   ÚCT_Slide._add_childTnLstÄ   sO   € ð 	�‰�D×*Ñ*Ó,Ô-Ü˜4×6Ñ6Ó8Ó9ˆØ×Ñ˜FÔ#Ø�|‰|Ð@ÓAÀ!ÑDÐDr!   c                ó>   • U R                  S5      nU(       d  gUS   $ )znReturn `./p:timing/p:tnLst/p:par/p:cTn/p:childTnLst` descendant.

Return None if that element is not present.
z+./p:timing/p:tnLst/p:par/p:cTn/p:childTnLstNr   )rŒ   )r   ÚchildTnLstss     r   r‚   ÚCT_Slide._childTnLstÏ   s#   € ð —j‘jÐ!NÓOˆÞØØ˜1‰~Ðr!   c                 ó   • S[        S5      -  $ )Nzº<p:timing %s>
  <p:tnLst>
    <p:par>
      <p:cTn id="1" dur="indefinite" restart="never" nodeType="tmRoot">
        <p:childTnLst/>
      </p:cTn>
    </p:par>
  </p:tnLst>
</p:timing>r7   r
   r"   r!   r   rŠ   ÚCT_Slide._childTnLst_timing_xmlÚ   s   € ð	ô $ C›Lñ	)ð	
r!   c                 ó"   • S[        SSS5      -  $ )Na  <p:sld %s>
  <p:cSld>
    <p:spTree>
      <p:nvGrpSpPr>
        <p:cNvPr id="1" name=""/>
        <p:cNvGrpSpPr/>
        <p:nvPr/>
      </p:nvGrpSpPr>
      <p:grpSpPr/>
    </p:spTree>
  </p:cSld>
  <p:clrMapOvr>
    <a:masterClrMapping/>
  </p:clrMapOvr>
</p:sld>r6   r7   Úrr
   r"   r!   r   r}   ÚCT_Slide._sld_xmlé   s   € ðô !  c¨3Ó/ñ0ð	
r!   r"   )r#   rv   )r$   r%   r&   r'   r(   r<   r   r   r)   r   Ú	clrMapOvrr�   rl   rs   r*   rT   r…   rƒ   r‚   ÚstaticmethodrŠ   r}   r+   r"   r!   r   rv   rv   Ÿ   s®   ‡ ÙGàP€HÙ,¨XÓ6€DÐ
Ó6Ù˜-°H¸Q¸R°LÑA€IÙ�z¨h°q°r¨lÑ;€FØàó9ó ð9ð ñó ðòò$	Eð ñó ðð ñ
ó ð
ð ñ
ó ó
r!   rv   c                  ó:   • \ rS rSr% SrSr\" S5      rS\S'   CSr	g)	ÚCT_SlideLayoutéþ   z3`p:sldLayout` element, root of a slide layout part.)rc   rp   rx   ry   re   rR   rc   r   r   r"   N)
r$   r%   r&   r'   r(   r<   r   r   r)   r+   r"   r!   r   rš   rš   þ   s   ‡ Ù=àX€HÙ,¨XÓ6€DÐ
Ó6Ûr!   rš   c                  ó4   • \ rS rSr% SrS\S'   \" S5      rSrg)ÚCT_SlideLayoutIdListi  z‚`p:sldLayoutIdLst` element, child of `p:sldMaster`.

Contains references to the slide layouts that inherit from the slide master.
zlist[CT_SlideLayoutIdListEntry]ÚsldLayoutId_lstzp:sldLayoutIdr"   N)	r$   r%   r&   r'   r(   r)   r   ÚsldLayoutIdr+   r"   r!   r   r�   r�     s   ‡ ñð
 5Ó4á˜_Ó-ƒKr!   r�   c                  ó6   • \ rS rSr% Sr\" S\5      rS\S'   Sr	g)ÚCT_SlideLayoutIdListEntryi  z_`p:sldLayoutId` element, child of `p:sldLayoutIdLst`.

Contains a reference to a slide layout.
zr:idrX   ÚrIdr"   N)
r$   r%   r&   r'   r(   r   r   r¢   r)   r+   r"   r!   r   r¡   r¡     s   ‡ ññ
 ! ¨Ó3€CˆÖ3r!   r¡   c                  ób   • \ rS rSr% SrS\S'   Sr\" S5      rS\S'   \	" S	\S
S S9r
S\S'   CSrg)ÚCT_SlideMasteri  z3`p:sldMaster` element, root of a slide master part.z"Callable[[], CT_SlideLayoutIdList]Úget_or_add_sldLayoutIdLst)rc   rd   úp:sldLayoutIdLstrx   ry   re   z
p:txStylesrR   rc   r   r   r¦   é   Nr2   r�   ÚsldLayoutIdLstr"   )r$   r%   r&   r'   r(   r)   r<   r   r   r   r¨   r+   r"   r!   r   r¤   r¤     sF   ‡ Ù=àAÓAð	€Hñ  -¨XÓ6€DÐ
Ó6Ù+4Ø x°° |ñ,€NÐ(ó ó 	r!   r¤   c                  ó2   • \ rS rSrSrSr\" S\SS S9rCSrg)	ÚCT_SlideTimingi0  z>`p:timing` element, specifying animations and timed behaviors.)úp:tnLstzp:bldLstrR   r«   rS   Nr2   r"   )	r$   r%   r&   r'   r(   r<   r   ÚtnLstr+   r"   r!   r   rª   rª   0  s   † ÙHà2€HÙ�i¨H°Q°R¨LÑ9€EÛr!   rª   c                  ó.   • \ rS rSrSrS r\S 5       rSrg)ÚCT_TimeNodeListi8  z%`p:tnLst` or `p:childTnList` element.c                ór   • S[        S5      U R                  U4-  n[        U5      nU R                  U5        g)z>Add a new `p:video` child element for movie having *shape_id*.a  <p:video %s>
  <p:cMediaNode vol="80000">
    <p:cTn id="%d" fill="hold" display="0">
      <p:stCondLst>
        <p:cond delay="indefinite"/>
      </p:stCondLst>
    </p:cTn>
    <p:tgtEl>
      <p:spTgt spid="%d"/>
    </p:tgtEl>
  </p:cMediaNode>
</p:video>
r7   N)r   Ú_next_cTn_idr   Úappend)r   Úshape_idÚ	video_xmlÚvideos       r   Ú	add_videoÚCT_TimeNodeList.add_video;  s@   € ðô & c›l¨D×,=Ñ,=¸xÐHñIð 	ô ˜)Ó$ˆØ�‰�EÕr!   c                ó€   • U R                  S5      nU Vs/ s H  n[        U5      PM     nn[        U5      S-   $ s  snf )z<Return the next available unique ID (int) for p:cTn element.z/p:sld/p:timing//p:cTn/@idrS   )rŒ   ÚintÚmax)r   ÚcTn_id_strsÚid_strÚidss       r   r°   ÚCT_TimeNodeList._next_cTn_idN  s>   € ð —j‘jÐ!=Ó>ˆÙ)4Ó5ª˜vŒs�6Ž{©ˆÐ5Ü�3‹x˜!‰|Ðùò 6s   –;r"   N)	r$   r%   r&   r'   r(   rµ   r*   r°   r+   r"   r!   r   r®   r®   8  s   † Ù/òð& ñó ór!   r®   c                  ó.   • \ rS rSrSrSr\" S5      rCSrg)ÚCT_TLMediaNodeVideoiV  z2`p:video` element, specifying video media details.)úp:cMediaNoderÀ   r"   N)	r$   r%   r&   r'   r(   r<   r   Ú
cMediaNoder+   r"   r!   r   r¿   r¿   V  s   † Ù<à €HÙ˜~Ó.€JÛr!   r¿   N))r(   Ú
__future__r   Útypingr   r   r   Ú	pptx.oxmlr   r   Úpptx.oxml.dml.fillr	   Úpptx.oxml.nsr   Úpptx.oxml.simpletypesr   Úpptx.oxml.xmlchemyr   r   r   r   r   r   r   r   Úpptx.oxml.shapes.groupshaper   r   r-   r8   r   ra   rn   rv   rš   r�   r¡   r¤   rª   r®   r¿   r"   r!   r   Ú<module>rÊ      sê   ðÙ Hå "ç 0Ñ 0ç 4Ý 8Ý  Ý +÷	÷ 	ó 	ö Ý9ô ˜ô  ô�Oô ô,8˜oô 8ô@#˜ô #ôL
HÐ&ô 
HôAÐ%ô Aô"\
Ð ô \
ô~Ð&ô ô.˜?ô .ô4 ô 4ôÐ&ô ô,�_ô ô�oô ô<˜/õ r!   