
    AHjW                    ~    d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 d dl
mZmZ erd dlmZ d dlmZ  G d d	e      Zy
)    )annotations)TYPE_CHECKING)	AnimationEasingFunction)AnimationLevelCallbackType)ScalarScalarOffset)
StylesBase)Widgetc                  h    e Zd Z	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 d	 	 	 	 	 d	dZd
ddZddZy)ScalarAnimationNc                   |	|J d       || _         || _        || _        || _        || _        || _        |	| _        |
| _        |j                  }|j                  j                  }t        ||      j                  ||      | _        |j                  ||      | _        |0| j                  j                  | j                        }||z  | _        y |J d       || _        y )Nz!One of speed or duration requiredz Duration expected to be non-None)widgetstyles
start_time	attributefinal_valueeasingon_completelevel
outer_sizeappsizegetattrresolvestartdestinationget_distance_toduration)selfr   r   r   r   valuer    speedr   r   r   r   viewportdistances                 T/root/tools/cai/cai_env/lib/python3.12/site-packages/textual/css/scalar_animation.py__init__zScalarAnimation.__init__   s     !5	/.	/5$" &
  ::??VY/77hG
 ==x8zz11$2B2BCH$u,DM'K)KK'$DM    c                h   t        d|| j                  z
  | j                  z        }| j                  |      }|dk\  s|dk(  s|dk(  r;| j                  dk(  r,t        | j                  | j                  | j                         yt        | j                  d      r'| j                  j                  | j                  |      }n)| j                  | j                  | j                  z
  |z  z   }| j                  j                  | j                        }||k7  r!t        | j                  | j                  |       y)	Ng      ?   nonebasicfullTblendF)minr   r    r   r   setattrr   r   r   hasattrr   r.   r   get_rule)r!   timeapp_animation_levelfactoreased_factorr"   currents          r&   __call__zScalarAnimation.__call__5   s     S4$//1T]]BC{{6* A"f,"g-

f$DKK1A1AB4::w'JJ$$T%5%5|DEJJ$"2"2TZZ"?<!OOE++&&t~~6eDKK7r(   c                   K   |r+t        | j                  | j                  | j                         | j	                          d{    y7 w)a  Stop the animation.

        Args:
            complete: Flag to say if the animation should be taken to completion.

        Note:
            [`on_complete`][Animation.on_complete] will be called regardless
            of the value provided for `complete`.
        N)r0   r   r   r   invoke_callback)r!   completes     r&   stopzScalarAnimation.stopN   s7      DKK1A1AB""$$$s   AAA	Ac                    t        |t              r4| j                  |j                  k(  xr | j                  |j                  k(  S y)NF)
isinstancer   r   r    )r!   others     r&   __eq__zScalarAnimation.__eq__\   s?    e_-  E$5$55 4MMU^^3 r(   )Nr-   )r   r   r   r   r   floatr   strr"   zScalarOffset | Scalarr    float | Noner#   rC   r   r   r   zCallbackType | Noner   r   )r-   )r3   rA   r4   r   returnbool)T)r;   rE   rD   None)r?   objectrD   rE   )__name__
__module____qualname__r'   r8   r<   r@    r(   r&   r   r      s     ,0 &$%$% $% 	$%
 $% %$% $% $% $% )$% $%N BH0>	2%r(   r   N)
__future__r   typingr   textual._animatorr   r   textual._typesr   r   textual.css.scalarr	   r
   textual.css.stylesr   textual.widgetr   r   rK   r(   r&   <module>rS      s+    "   7 7 3-%Ti Tr(   