+
    bIi'                     z    R t RtRt^ RIt]P                  ! R4      tRt^ RIHt ]P                  t	 ! R R4      t
R# )	z3.5.14z.A frame is a container for content on a page.
FrameNzreportlab.platypus)	rl_configc                      a  ] tR t^t o RtRR ltR tR tR tR t	R t
R	 tR
 tRR lt]tR tRR ltR tR tR tRtV tR# )r   a   
A Frame is a piece of space in a document that is filled by the
"flowables" in the story.  For example in a book like document most
pages have the text paragraphs in one or two frames.  For generality
a page might have several frames (for example for 3 column text or
for text that wraps around a graphic).

After creation a Frame is not usually manipulated directly by the
applications program -- it is used internally by the platypus modules.

Here is a diagramatid abstraction for the definitional part of a Frame::

            width                    x2,y2
    +---------------------------------+
    | l  top padding                r | h
    | e +-------------------------+ i | e
    | f |                         | g | i
    | t |                         | h | g
    |   |                         | t | h
    | p |                         |   | t
    | a |                         | p |
    | d |                         | a |
    |   |                         | d |
    |   +-------------------------+   |
    |    bottom padding               |
    +---------------------------------+
    (x1,y1) <-- lower left corner

NOTE!! Frames are stateful objects.  No single frame should be used in
two documents at the same time (especially in the presence of multithreading.
Nc                ~   Wn         Wn        WP                  R &   W P                  R&   W0P                  R&   W@P                  R&   WPP                  R&   W`P                  R&   WpP                  R&   WP                  R&   Wn        Vf   \        P
                  pWn        V P                  4        V P                  4        R# )	_x1_y1_width_height_leftPadding_bottomPadding_rightPadding_topPaddingN)	id_debug__dict__showBoundaryr   overlapAttachedSpace_oASpace_geom_reset)selfx1y1widthheightleftPaddingbottomPaddingrightPadding
topPaddingr   r   r   r   s   &&&&&&&&&&&&&ڂC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\reportlab/platypus/frames.py__init__Frame.__init__5   s       "e!e"'h#)i  )4n%*7&')5o&'1m$ )'	@^@^)=,

    c                b    V\         9   d   V P                  R V,           ,          # \        V4      h)_)	_geomAttrr   AttributeError)r   as   &&r   __getattr__Frame.__getattr__O   s&    	>$--A"66Qr"   c                    V\         9   d(   W P                  R V,           &   V P                  4        R# W P                  V&   R# )r$   N)r%   r   r   )r   r'   vs   &&&r   __setattr__Frame.__setattr__S   s.    	>#$MM#a% JJL MM!r"   c                   V P                   P                  R / 4      '       g>   \         F3  pRV,           pV P                   V,          V P                   R ,          V&   K5  	  VP                  4        F  w  r4\	        WV4       K  	  R# )
_savedGeomr$   N)r   
setdefaultr%   itemssetattr)r   kwdsgakr+   s   &,   r   	_saveGeomFrame._saveGeomZ   sf    }}''R88V26--2Cl+B/   ::<CAD1  r"   c                   V P                   P                  R R4      '       d]   \         F@  pRV,           pV P                   V,          R ,          V P                   V&   V P                   R  KB  	  V P                  4        R# R# )r/   Nr$   )r   getr%   r   )r   r4   s   & r   _restoreGeomFrame._restoreGeomb   sd    ==\$//V$(MM"$5l$Cb!MM,/   JJL 0r"   c                   V P                   V P                  ,           V n        V P                  V P                  ,           V n        V P                  V P                  ,           V n        V P                  V P                   ,
          V P                  ,
          V P                  ,
          V n
        V P
                  V P                  ,
          V P                  ,
          V n        R # N)r   r   _x2r   r	   _y2r   _y1pr
   r   _aWr   _aHr   s   &r   r   Frame._geomj   s    88dkk)88dll*HHt222	88dhh&):)::T=O=OO88dii'$*:*::r"   c                    V P                  4        V P                  V P                  ,           V n        V P                  V P
                  ,
          V n        ^V n        ^ V n        RV n	        RV n
        R# )   g        N)r:   r   r
   _xr?   r   _y_atTop_prevASpace_leftExtraIndent_rightExtraIndentrC   s   &r   r   Frame._resets   s[    ((T...((T---
 !$!$r"   c                ^    V P                   V P                  ,
          V P                  ,
          # r=   )rA   rK   rL   rC   s   &r   _getAvailableWidthFrame._getAvailableWidth   s"    xx$///$2H2HHHr"   c                	   Wn         W!n         \        VRR4      '       d<   VP                  V 4        R F!  p\	        W4      '       g   K  \        W4       K#  	  ^# V P                  pV P                  p^ pV P                  4       p\        VRR4      p	V P                  '       gf   VP                  4       pV P                  '       dD   \        VRR4      '       g	   V	'       d   V P                  p\        WpP                  ,
          ^ 4      pWV,
          V,
          p
V
^ 8  g	   V	'       d   VP                  W4      w  rM* R F!  p\	        W4      '       g   K  \        W4       K#  	  ^ # W,          p
WZ,          pWV\        ,
          8  d   \         P"                  '       gV   WP$                  8  g   W8  d@   V'       g8   ^ RIHp V! RVP*                  : RV: R	V
: R
V: R	V P$                  : R24      h R F!  p\	        W4      '       g   K  \        W4       K#  	  ^ # VP-                  4       p\        V RR4      pV'       Ed   VR,          P.                  '       Edi   VR,          pVP0                  pVP2                  pVP4                  pV P6                  V,
          V,
          pV P8                  V,           pV'       g6   WZ,           V,           p\        WeV,
          4      p\        ^ VV,
          4      pMWZ,           V,
          pVV P:                  V P<                  ,
          8  pVR8X  g   VR8X  g   V'       d[   VR8X  dT   \        ^ V'       d   V P:                  MTV P>                  ,
          4      pV P>                  pVR8X  d   RVR,          n        M^ ;p;ppVPA                  W VVVV4       VR8X  d   VPC                  4        VPE                  W PF                  V PH                  ,           WXV,
          R7       W!n        V PJ                  '       d+   \L        PO                  RVPQ                  4       ,          4       W],          pV P                  '       d&   \        VRR4      '       d   V P                  pWn        WPP                  8w  d   ^ V n	        WPn         R F!  p\	        W4      '       g   K  \        W4       K#  	  ^#   R F!  p\	        Y4      '       g   K  \        Y4       K#  	  i ; i)zDraws the flowable at the current position.
Returns 1 if successful, 0 if it would not fit.
Raises a LayoutError if the object is too wide,
or if it is too high for a totally empty frame,
to avoid infinite loopsframeActionN	_ZEROSIZEF_SPACETRANSFER)LayoutErrorz	Flowable z (xz points) too large for frame (z	 points).	_frameBGsframezframe-permanentzframe-permanent-1)_sWzdrew %scanv_frame))r\   r[   getattrrR   hasattrdelattrrH   r@   rO   rI   getSpaceBeforer   rJ   maxwrap_FUZZr   allowTableBoundsErrorsrB   reportlab.platypus.doctemplaterU   	__class__getSpaceAfteractiveleftrightstartr   r   r?   r   r   renderpopdrawOnrG   rK   r   loggerdebugidentity)r   flowabler[   trySplitr'   ypsaWzeroSizehwrU   safbgbgfbglfbgrbgmfbwfbxfbhfbyatts   &&&&                    r   _add
Frame._add   s    L	(xd33$$T*N (8&&H' (K A		AA((*BxE:H;;;**,===x(8??8 ,,A...q1A	Ash}}R+1l (8&&H' (i FAFAU7{ 777ajADZbJ% **AaDHH'> ? ?X (8&&H' (S ++-d;t433r7>>>RB77D88D((C++d*4/C((4-Cebj!!bDk!!CGneai!488d.>.>#>><30A+AccSfNf"%aSc488(K"LC"&((C"$550CB.//C/#IIdCC8G|	gg0E0E&EqQRdS";;;Y9J9J9L-L M===x(8??!--')$gg:Qt{ (8&&H' ('8&&H' (sK   $S A*S S "AS (S &6S S ;7S DS 8ES S*S*c                (   V P                   pV P                  p^ pV P                  '       g?   VP                  4       pV P                  '       d   \        WPP                  ,
          ^ 4      pW4,
          V,
          pV^ 8:  d   \        VRR4      '       g   . # Wn        W!n	         VP                  V P                  V4      pR F!  p\        W4      '       g   K  \        W4       K#  	  V#   R F!  p\        Y4      '       g   K  \        Y4       K#  	  i ; i)z7Ask the flowable to split using up the available space.rS   FrZ   )rH   r@   rI   ra   r   rb   rJ   r^   r\   r[   splitrA   r_   r`   )	r   rs   r[   ru   rv   rw   rz   rr'   s	   &&&      r   r   Frame.split   s    GGII{{{'')A}}}***1-CEa4U;;I	(txx+A (8&&H' (  (8&&H' (s   #C( (DDc                    TP                  T;'       g    V P                  V P                  V P                  V P                  V P                  ,
          V P
                  V P                  ,
          4       R # r=   )drawBoundaryr   r   r   r>   r?   )r   r[   __boundary__s   &&&r   r   Frame.drawBoundary   sL    ,;;$*;*;TXXtxx $488 3TXX5H	Jr"   c                .   V P                   '       d'   \        P                  RV P                  ,          4       V P                  '       d   V P                  V4       \        V4      ^ 8  d*   V^ ,          pV P                  W2^ R7      '       d   V^  K7  R# R# )zwConsumes objects from the front of the list until the
frame is full.  If it cannot fit one object, raises
an exception.z&enter Frame.addFromlist() for frame %s)rt   N)r   rp   rq   r   r   r   lenadd)r   drawlistr[   heads   &&& r   addFromListFrame.addFromList   sx    
 ;;;%MPTPWPW%WXd#(maA;Dxx1x--QK   r"   c                \    V P                   P                  R . 4      P                  V4       R# )_generated_contentN)r   r0   extend)r   Cs   &*r   add_generated_contentFrame.add_generated_content  s"      !5b9@@Cr"   c                    R V P                  4       : RV P                  : V P                  ;'       d    R;'       g    R: R2# )(z x * ))rO   rB   rI   rC   s   &r   _aSpaceStringFrame._aSpaceString  s5     $ 7 7 9$((4;;CVCVSVC\C\Z\C\]]r"   )rB   rA   rI   r   rK   r   rJ   rL   rG   r>   rH   r@   r?   r   r   )   r   r   r   N    NN)r   r=   )__name__
__module____qualname____firstlineno____doc__r    r(   r,   r6   r:   r   r   rO   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sc     >4 !;%IT(l C.J"D^ ^r"   )r   )r   r   r   r   r   r   r   r   )__version__r   __all__logging	getLoggerrp   r%   	reportlabr   rd   r    r"   r   <module>r      sO   
 	 			/	0
g	 oow^ w^r"   