Xj dZddlmZddlmZmZmZmZddlm Z ddl m Z m Z m Z er$ddlmZddlmZddlmZdd lmZdd lmZdd lmZGd d e Zy)z4Custom element classes related to paragraphs (CT_P).) annotations) TYPE_CHECKINGCallableListcast) OxmlElement)BaseOxmlElement ZeroOrMore ZeroOrOne)WD_PARAGRAPH_ALIGNMENT) CT_SectPr) CT_Hyperlink)CT_LastRenderedPageBreak)CT_PPr)CT_Rc6eZdZUdZded<ded<ded<ded <ed Zd ed <ed ZedZ ddZ e ddZ e jddZ dZe ddZe ddZd dZe d!dZejd"dZe dZd#dZy)$CT_PzD`` element, containing the properties and text for a paragraph.zCallable[[], CT_R]add_rzCallable[[], CT_PPr]get_or_add_pPrzList[CT_Hyperlink] hyperlink_lstz List[CT_R]r_lstzw:pPrz CT_PPr | NonepPrz w:hyperlinkzw:rcZtttd}|j||S)zAReturn a new `` element inserted directly prior to this one.zw:p)rrr addprevious)selfnew_ps l/mnt/ssd/data/Dropbox/adrian/vault-secondbrain/venv/lib/python3.12/site-packages/docx/oxml/text/paragraph.py add_p_beforezCT_P.add_p_before!s&T;u-.  c8|j}|y|jS)zFThe value of the `` grandchild element or |None| if not present.N)rjc_valrrs r alignmentzCT_P.alignment'shh ;zzrc2|j}||_yN)rr!)rvaluers rr#zCT_P.alignment/s!!# rcR|jdD]}|j|y)zCRemove all child elements, except the `` element if present.z./*[not(self::w:pPr)]N)xpathremove)rchilds r clear_contentzCT_P.clear_content4s'ZZ 78 E KK  rc$|jdS)zCRun and hyperlink children of the `w:p` element, in document order.z./w:r | ./w:hyperlinkr(rs rinner_content_elementszCT_P.inner_content_elements9szz122rc$|jdS)zAll `w:lastRenderedPageBreak` descendants of this paragraph. Rendered page-breaks commonly occur in a run but can also occur in a run inside a hyperlink. This returns both. zI./w:r/w:lastRenderedPageBreak | ./w:hyperlink/w:r/w:lastRenderedPageBreakr-r.s rlastRenderedPageBreakszCT_P.lastRenderedPageBreaks>szz W  rcf|j}|j|j|y)zJUnconditionally replace or add `sectPr` as grandchild in correct sequence.N)r_remove_sectPr_insert_sectPr)rsectPrrs r set_sectPrzCT_P.set_sectPrIs*!!#  6"rc8|j}|y|jS)zpString contained in `w:val` attribute of `./w:pPr/w:pStyle` grandchild. |None| if not present. N)rstyler"s rr8z CT_P.styleOs hh ;yyrc2|j}||_yr%)rr8)rr8rs rr8z CT_P.styleZs!!# rcPdjd|jdDS)zThe textual content of this paragraph. Inner-content child elements like `w:r` and `w:hyperlink` are translated to their text equivalent. c34K|]}|jywr%)text).0es r zCT_P.text..fsG!qvvGszw:r | w:hyperlink)joinr(r.s rr=z CT_P.text_s#wwGtzz2E'FGGGrc*|jd||S)Nr)insertr"s r _insert_pPrzCT_P._insert_pPrhs As rN)returnr)rEzWD_PARAGRAPH_ALIGNMENT | None)r&r )rEzList[CT_R | CT_Hyperlink])rEzList[CT_LastRenderedPageBreak])r5r )rE str | None)r8rF)rrrEr)__name__ __module__ __qualname____doc____annotations__r rr hyperlinkrrpropertyr#setterr+r/r1r6r8r=rDrrrrsN ((%% "7+C+=)I5A  33  #  \\HHrrN)rJ __future__rtypingrrrrdocx.oxml.parserrdocx.oxml.xmlchemyr r r docx.enum.textr docx.oxml.sectionr docx.oxml.text.hyperlinkrdocx.oxml.text.pagebreakrdocx.oxml.text.parfmtrdocx.oxml.text.runrrrPrrr[s?;"66(EE5+5A,'U?Ur