+
    ir                         ^ RI Ht ^ RIHt ^ RIHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^RIHt ^RIHtHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RI H!t!  ! R R]4      t"R t# ! R R]4      t$R# )    )OrderedDict)
attrgetter)TypedIntegerAliasMinMaxBoolSet)ValueSequence)Serialisable)_3DBase)AxDataSourceNumRef)Layout)Legend)	Reference)SeriesFactory)attribute_mapping)GraphicalProperties)TitleDescriptorc                   4   a  ] tR t^t o ]! 4       tR tRtV tR# )AxIdc                    Wn         R # Nval)selfr   s   &&\/Users/agent/.openclaw/workspace/.venv/lib/python3.14/site-packages/openpyxl/chart/_chart.py__init__AxId.__init__   s        r   N)	__name__
__module____qualname____firstlineno__r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     
)C r!   r   c                      ^RI Hp  V ! 4       # )   PlotArea)
chartspacer,   r+   s    r   r,   r,   #   s    $:r!   c                     a a ] tR t^(t oRt]! ]RR7      t]! ]RR7      t	]
! RR7      t]! ]R7      t]
! RR7      t]! . ROR7      t]! ]RR7      tRtRt]! R4      t]! 4       tR	t^tR
t^tRt]! R^^0R7      t Rt!]! ]RR7      tRt"RV 3R llt#R t$R t%RV 3R llt&R t'R t(])R 4       t*R t+RR lt,R t-])R 4       t.Rt/Vt0V ;t1# )	ChartBasez
Base class for all charts
T)expected_type
allow_none)r1   )r0   )values serE15g      @z/xl/charts/chart{0}.xml)r1   minmaxzAapplication/vnd.openxmlformats-officedocument.drawingml.chart+xmlc                  < V .V n         R V n        R V n        R V n        \	        4       V n        R V n        R V n        \        4       V n	        Wn
        RV n        R V n        RV n        RV n        ^ V n        R V n        \         SV `E  4        R # )NgapT )_chartstitlelayoutroundedCornersr   legendgraphical_propertiesstyler,   	plot_areaaxIddisplay_blankspivotSourcepivotFormatsvisible_cells_onlyidx_basesuperr   )r   rC   kw	__class__s   &&,r   r   ChartBase.__init__F   s    v
"h$(!
!	#"&$(!r!   c                    \        V 4      # )z!
Just need to check for identity
)idr   s   &r   __hash__ChartBase.__hash__Y   s     $xr!   c                ~    \        V\        4      '       g   \        R4      hV P                  P	                  V4       V # )z$
Combine the chart with another one
zOnly other charts can be added)
isinstancer/   	TypeErrorr;   append)r   others   &&r   __iadd__ChartBase.__iadd___   s4     %++<==E"r!   c                   < V P                    Uu. uF  qDNK  	  upV n        V P                  e0   V P                   F  p\        V P                  ,          Vn        K!  	  \        SV `  W#4      # u upi r   )_axesrC   r4   r   _series_type__elements__rI   to_tree)r   	namespacetagnameidxrN   srK   s   &&&&  r   r]   ChartBase.to_treei   s[    "&**-*BR*-	88XX!243D3D!E ww,,	 .s   
A.c                    \        V P                  \        R4      R7      p\        V4       F  w  r#W#n        K  	  Wn        R# )zC
Normalise and rebase series: sort by order and then rebase order

order)keyN)sortedseriesr   	enumeraterd   )r   dsr`   ra   s   &   r   _reindexChartBase._reindexq   s3     DKKZ%89mFCG $r!   c                ^   ^RI HpHp V P                  V P                  n        V P
                  pV P                   FA  pW@P                  P                  9  g   K  W4n        V\        VP                  4      ,          pKC  	  V P                  V P                  n        V! V P                  V P                  V P                  R7      p\        X\        4      '       dE   VP                  Vn        VP                  Vn        VP                  Vn        VP                   Vn        V P"                  Vn        V P&                  Vn        V P*                  Vn        V! VR7      pV P.                  Vn        V P0                  Vn        V P2                  Vn        V P4                  Vn        VP9                  4       # )r*   )
ChartSpaceChartContainer)plotArear?   r<   )chart)r-   rm   rn   r=   rB   rH   r;   lenrg   r?   r<   rS   r   view3DfloorsideWallbackWallrG   plotVisOnlyrD   dispBlanksAsrF   	pivotFmtsrA   r>   rE   r@   spPrr]   )r   rm   rn   rH   rp   	containercss   &      r   _writeChartBase._write}   s2   : $==\\ENN222!)C-- " "&"DNN4;;VZV`V`a	eW%%$||I#kkIO!&I!&I $ 7 7	!%!4!4	"//	i(:: //))++zz|r!   c                    \        V R R4      p\        V RR4      p\        V RR4      p\        WV3 Uu. uF  qD'       g   K  VP                  V3NK  	  up4      # u upi )x_axisNy_axisz_axis)getattrr   rC   )r   xyzaxiss   &    r   rZ   ChartBase._axes   s[    D(D)D(D)D(D)1)L)$t-TYY-)LMMLs   	AAc                    \        V\        4      '       g   \        VR7      pV P                   F  p\        \	        VR7      R7      Vn        K   	  R# )z$
Set the categories / x-axis values
range_string)f)numRefN)rS   r   r4   r   r   cat)r   labelsra   s   && r   set_categoriesChartBase.set_categories   s:     &),,F3FA (89AE r!   c                    \        V\        4      '       g   \        VR7      pV'       d   VP                  pMVP                  pV F*  p\	        WSR7      pV P
                  P                  V4       K,  	  R# )z]
Add a range of data in a single pass.
The default is to treat each column as a data series.
r   )title_from_dataN)rS   r   rowscolsr   rg   rU   )r   data	from_rowstitles_from_datar2   refrg   s   &&&&   r   add_dataChartBase.add_data   sX    
 $	**$/DYYF YYFC"3IFKKv& r!   c                Z    V P                   R,          pVP                  V4       W n         R# )z!Append a data series to the chart:NNNN)rg   rU   )r   valuels   && r   rU   ChartBase.append   s    KKN	r!   c                L    V P                   P                  V P                  4      # r   )_pathformat_idrO   s   &r   pathChartBase.path   s    zz  **r!   )r;   rC   rD   r@   rH   r=   r?   rF   rE   rB   r>   rg   rA   r<   rG   )spanr9   zeror:   )r:   )NNN)FF)2r"   r#   r$   r%   __doc__r   r   r?   r   r=   r	   r>   r   intrC   rG   r
   rD   r   r@   r[   r4   r   rg   r   r<   anchorwidthheightr   r   r   rA   	mime_typer\   r   rP   rW   r]   rj   r|   propertyrZ   r   r   rU   r   r&   r'   __classcell__)rK   r(   s   @@r   r/   r/   (   s     D9FD9FT*Ns+D. 78N /BtTL
C5\FEFEF
C%Edr2ESI /BtTL&-	8 N N:'& + + +r!   r/   N)%collectionsr   operatorr   openpyxl.descriptorsr   r   r   r   r	   r
   openpyxl.descriptors.sequencer   !openpyxl.descriptors.serialisabler   _3dr   data_sourcer   r   r=   r   r?   r   	referencer   series_factoryr   rg   r   shapesr   r<   r   r   r,   r/   r:   r!   r   <module>r      sY    $   8 :  -     ) % ' "< 
_+ _+r!   