§
    Ài‚g  ã                   óf  — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ ddlmZ  G d	„ d
e¦  «        Z G d„ d eee¦  «        ¦  «        Z G d„ de¦  «        Z G d„ d eee¦  «        ¦  «        Z G d„ d eee¦  «        ¦  «        Z G d„ de¦  «        Z G d„ d eee¦  «        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d e¦  «        Z G d!„ d"e¦  «        Z G d#„ d$e¦  «        Z G d%„ d&e¦  «        Z G d'„ d(e¦  «        Zd)S )*z#linebot.models.flex_message module.é    )ÚABCMeta)Úwith_metaclassé   )Ú
BackgroundÚLinearGradientBackground)Ú
get_action)ÚBase)ÚSendMessagec                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )ÚFlexSendMessagezãFlexSendMessage.

    https://developers.line.biz/en/reference/messaging-api/#flex-message

    Flex Messages are messages with a customizable layout.
    You can customize the layout freely by combining multiple elements.
    Nc                 ó´   •—  t          t          | ¦  «        j        di |¤Ž d| _        || _        |                      |t          t          dœ¦  «        | _        dS )zä__init__ method.

        :param str alt_text: Alternative text
        :param contents: Flex Message container object
        :type contents: :py:class:`linebot.models.flex_message.FlexContainer`
        :param kwargs:
        Úflex)ÚbubbleÚcarouselN© )	Úsuperr   Ú__init__ÚtypeÚalt_textÚ$get_or_new_from_json_dict_with_typesÚBubbleContainerÚCarouselContainerÚcontents)Úselfr   r   ÚkwargsÚ	__class__s       €ú`/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/linebot/models/flex_message.pyr   zFlexSendMessage.__init__%   sd   ø€ ð 	.��o˜tÑ$Ô$Ô-Ð7Ð7°Ð7Ð7Ð7àˆŒ	Ø ˆŒØ×AÒAØÝ)Ý-ðð ñ
ô 
ˆŒˆˆó    ©NN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__©r   s   @r   r   r      sG   ø€ € € € € ðð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚFlexContainerz™FlexContainer.

    https://developers.line.biz/en/reference/messaging-api/#container

    A container is the top-level structure of a Flex Message.
    c                 óV   •—  t          t          | ¦  «        j        di |¤Ž d| _        dS ©ú1__init__ method.

        :param kwargs:
        Nr   )r   r(   r   r   ©r   r   r   s     €r   r   zFlexContainer.__init__A   ó3   ø€ ð
 	,��m˜TÑ"Ô"Ô+Ð5Ð5¨fÐ5Ð5Ð5àˆŒ	ˆ	ˆ	r   r    r&   s   @r   r(   r(   9   óB   ø€ € € € € ðð ðð ð ð ð ð ð ð ð r   r(   c                   ó(   ‡ — e Zd ZdZ	 	 dˆ fd„	Zˆ xZS )r   zÔBubbleContainer.

    https://developers.line.biz/en/reference/messaging-api/#bubble

    This is a container that contains one message bubble.
    It can contain four blocks: header, hero, body, and footer.
    Nc	                 óö  •—  t          t          | ¦  «        j        di |	¤Ž d| _        || _        || _        |                      |t          ¦  «        | _        |  	                    |t          t          t          dœ¦  «        | _        |                      |t          ¦  «        | _        |                      |t          ¦  «        | _        |                      |t          ¦  «        | _        t#          |¦  «        | _        dS )aJ  __init__ method.

        :param str size: The size of the bubble. `nano`, `micro`, `kilo`, `mega`, or `giga`.
        :param str direction: Text directionality and the order of components
            in horizontal boxes in the container
        :param header: Header block
        :type header: :py:class:`linebot.models.flex_message.BoxComponent`
        :param hero: Hero block
        :type hero: :py:class:`linebot.models.flex_message.ImageComponent`
            | :py:class:`linebot.models.flex_message.BoxComponent`
            | :py:class:`linebot.models.flex_message.VideoComponent`
        :param body: Body block
        :type body: :py:class:`linebot.models.flex_message.BoxComponent`
        :param footer: Footer block
        :type footer: :py:class:`linebot.models.flex_message.BoxComponent`
        :param styles: Style of each block
        :type styles: :py:class:`linebot.models.flex_message.BubbleStyle`
        :param action: Action performed when this button is tapped
        :type action: list[T <= :py:class:`linebot.models.actions.Action`]
        :param kwargs:
        r   )ÚimageÚboxÚvideoNr   )r   r   r   r   ÚsizeÚ	directionÚget_or_new_from_json_dictÚBoxComponentÚheaderr   ÚImageComponentÚVideoComponentÚheroÚbodyÚfooterÚBubbleStyleÚstylesr   Úaction)r   r4   r5   r8   r;   r<   r=   r?   r@   r   r   s             €r   r   zBubbleContainer.__init__T   sÛ   ø€ ð. 	.��o˜tÑ$Ô$Ô-Ð7Ð7°Ð7Ð7Ð7àˆŒ	ØˆŒ	Ø"ˆŒØ×4Ò4°V½\ÑJÔJˆŒØ×=Ò=ØÝ'Ý#Ý'ðð ñ
ô 
ˆŒ	ð ×2Ò2°4½ÑFÔFˆŒ	Ø×4Ò4°V½\ÑJÔJˆŒØ×4Ò4°V½[ÑIÔIˆŒÝ  Ñ(Ô(ˆŒˆˆr   )NNNNNNNNr    r&   s   @r   r   r   K   sQ   ø€ € € € € ðð ð EIØ=Að')ð ')ð ')ð ')ð ')ð ')ð ')ð ')ð ')ð ')r   r   c                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )r>   z[BubbleStyle.

    https://developers.line.biz/en/reference/messaging-api/#bubble-style
    Nc                 óH  •—  t          t          | ¦  «        j        di |¤Ž |                      |t          ¦  «        | _        |                      |t          ¦  «        | _        |                      |t          ¦  «        | _        |                      |t          ¦  «        | _        dS )a  __init__ method.

        :param header: Style of the header block
        :type header: :py:class:`linebot.models.flex_message.BlockStyle`
        :param hero: Style of the hero block
        :type hero: :py:class:`linebot.models.flex_message.BlockStyle`
        :param body: Style of the body block
        :type body: :py:class:`linebot.models.flex_message.BlockStyle`
        :param footer: Style of the footer block
        :type footer: :py:class:`linebot.models.flex_message.BlockStyle`
        :param kwargs:
        Nr   )	r   r>   r   r6   Ú
BlockStyler8   r;   r<   r=   )r   r8   r;   r<   r=   r   r   s         €r   r   zBubbleStyle.__init__„   sˆ   ø€ ð 	*��k˜4Ñ Ô Ô)Ð3Ð3¨FÐ3Ð3Ð3à×4Ò4°V½ZÑHÔHˆŒØ×2Ò2°4½ÑDÔDˆŒ	Ø×2Ò2°4½ÑDÔDˆŒ	Ø×4Ò4°V½ZÑHÔHˆŒˆˆr   )NNNNr    r&   s   @r   r>   r>   ~   sQ   ø€ € € € € ðð ð
Ið Ið Ið Ið Ið Ið Ið Ið Ið Ir   r>   c                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )rC   zYBlockStyle.

    https://developers.line.biz/en/reference/messaging-api/#block-style
    Nc                 ór   •—  t          t          | ¦  «        j        di |¤Ž || _        || _        || _        dS )aç  __init__ method.

        :param str background_color: Background color of the block. Use a hexadecimal color code
        :param bool separator: True to place a separator above the block
            True will be ignored for the first block in a container
            because you cannot place a separator above the first block.
            The default value is False
        :param str separator_color: Color of the separator. Use a hexadecimal color code
        :param kwargs:
        Nr   )r   rC   r   Úbackground_colorÚ	separatorÚseparator_color)r   rF   rG   rH   r   r   s        €r   r   zBlockStyle.__init__Ÿ   sE   ø€ ð 	)��j˜$ÑÔÔ(Ð2Ð2¨6Ð2Ð2Ð2Ø 0ˆÔØ"ˆŒØ.ˆÔÐÐr   )NNNr    r&   s   @r   rC   rC   ™   sG   ø€ € € € € ðð ð
/ð /ð /ð /ð /ð /ð /ð /ð /ð /r   rC   c                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )r   zøCarouselContainer.

    https://developers.line.biz/en/reference/messaging-api/#f-carousel

    This is a container that contains multiple bubble containers, or message bubbles.
    The bubbles will be shown in order by scrolling horizontally.
    Nc                 óÒ   •—  t          t          | ¦  «        j        di |¤Ž d| _        g }|r3|D ]0}|                     |                      |t          ¦  «        ¦  «         Œ1|| _        dS )zÀ__init__ method.

        :param contents: Array of bubble containers
        :type contents: list[T <= :py:class:`linebot.models.flex_message.BubbleContainer`]
        :param kwargs:
        r   Nr   )r   r   r   r   Úappendr6   r   r   )r   r   r   Únew_contentsÚitr   s        €r   r   zCarouselContainer.__init__¹   s�   ø€ ð 	0�Õ Ñ&Ô&Ô/Ð9Ð9°&Ð9Ð9Ð9àˆŒ	àˆØð 	Øð ð �Ø×#Ò# D×$BÒ$BØ�ñ%ô %ñ ô ð ð ð %ˆŒˆˆr   ©Nr    r&   s   @r   r   r   °   sG   ø€ € € € € ðð ð%ð %ð %ð %ð %ð %ð %ð %ð %ð %r   r   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚFlexComponentz�FlexComponent.

    https://developers.line.biz/en/reference/messaging-api/#component

    Components are objects that compose a Flex Message container.
    c                 óV   •—  t          t          | ¦  «        j        di |¤Ž d| _        dS r*   )r   rP   r   r   r,   s     €r   r   zFlexComponent.__init__Õ   r-   r   r    r&   s   @r   rP   rP   Í   r.   r   rP   c                   óZ   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )r7   zÂBoxComponent.

    https://developers.line.biz/en/reference/messaging-api/#box

    This is a component that defines the layout of child components.
    You can also include a box in a box.
    Nc                 óð  •—  t          t          | ¦  «        j        di |¤Ž d| _        || _        || _        || _        || _        || _        || _	        || _
        |
| _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        t9          |¦  «        | _        t=          j        |	dt@          i¦  «        | _!        g }|re|D ]b}| "                    |                      |t          tF          tH          tJ          tL          tN          tP          tR          tT          dœ	¦  «        ¦  «         Œc|| _+        dS )a‹	  __init__ method.

        :param str layout: The placement style of components in this box
        :param contents: Components in this box
        :type contents: list[T <= :py:class:`linebot.models.flex_message.FlexComponent`]
        :param str background_color: Background color of the block
        :param str border_color: Color of box border
        :param str border_width: Width of box border
        :param str corner_radius: Radius at the time of rounding the corners of the border
        :param str justify_content: How child elements are aligned along the main axis of
            the parent element
        :param str align_items: How child elements are aligned along the cross axis of
            the parent element
        :param background: Background object
        :type background: T <= :py:class:`linebot.models.background.Background`
        :param str width: Width of the box
        :param str max_width: Maximum width of the box
        :param str height: Height of the box
        :param str max_height: Maximum height of the box
        :param float flex: The ratio of the width or height of this box within the parent box
            and the previous component in the parent box
        :param str spacing: Minimum space between components in this box
        :param str margin: Minimum space between this box
        :param str padding_all: Free space between the borders of this box and the child element
        :param str padding_top: Free space between the border at the upper end of this box
            and the upper end of the child element
        :param str padding_bottom: Free space between the border at the lower end of this box
            and the lower end of the child element
        :param str padding_start: Free space between the border at the left end of this box
            and the left end of the child element
        :param str padding_end: Free space between the border at the right end of this box
            and the right end of the child element
        :param str position: Reference position for placing this box
        :param str offset_top: The top offset
        :param str offset_bottom: The bottom offset
        :param str offset_start: The left offset
        :param str offset_end: The right offset
        :param action: Action performed when this button is tapped
        :type action: list[T <= :py:class:`linebot.models.actions.Action`]
        :param kwargs:
        r2   ÚlinearGradient)	r2   ÚbuttonÚfillerÚiconr1   ÚspanrG   Útextr3   Nr   ),r   r7   r   r   ÚlayoutrF   Úborder_colorÚborder_widthÚcorner_radiusÚjustify_contentÚalign_itemsÚwidthÚ	max_widthÚheightÚ
max_heightr   ÚspacingÚmarginÚpadding_allÚpadding_topÚpadding_bottomÚpadding_startÚpadding_endÚpositionÚ
offset_topÚoffset_bottomÚoffset_startÚ
offset_endr   r@   r   r   r   Ú
backgroundrK   ÚButtonComponentÚFillerComponentÚIconComponentr9   ÚSpanComponentÚSeparatorComponentÚTextComponentr:   r   ) r   rZ   r   rF   r[   r\   r]   r^   r_   rp   r`   ra   rb   rc   r   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   r@   r   rL   rM   r   s                                   €r   r   zBoxComponent.__init__è   s–  ø€ ðL 	+��l˜DÑ!Ô!Ô*Ð4Ð4¨VÐ4Ð4Ð4ØˆŒ	ØˆŒØ 0ˆÔØ(ˆÔØ(ˆÔØ*ˆÔØ.ˆÔØ&ˆÔØˆŒ
Ø"ˆŒØˆŒØ$ˆŒØˆŒ	ØˆŒØˆŒØ&ˆÔØ&ˆÔØ,ˆÔØ*ˆÔØ&ˆÔØ ˆŒØ$ˆŒØ*ˆÔØ(ˆÔØ$ˆŒÝ  Ñ(Ô(ˆŒÝ$ÔIØÐ)Õ+CÐDñ
ô 
ˆŒð ˆØð 	Øð ð �Ø×#Ò# D×$MÒ$MØÝ+Ý"1Ý"1Ý -Ý!/Ý -Ý%7Ý -Ý!/ð
ð 
ñ%ô %ñ ô ð ð ð %ˆŒˆˆr   )NNNNNNNNNNNNNNNNNNNNNNNNNNNr    r&   s   @r   r7   r7   ß   s¤   ø€ € € € € ðð ð ØØ"&Ø"Ø"Ø#Ø!%Ø!Ø ØØØØ ØØØØ!Ø!Ø $Ø#Ø!ØØ Ø#Ø"Ø Øð7u%ð u%ð u%ð u%ð u%ð u%ð u%ð u%ð u%ð u%r   r7   c                   ó>   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )rq   z¿ButtonComponent.

    https://developers.line.biz/en/reference/messaging-api/#button

    This component draws a button.
    When the user taps a button, a specified action is performed.
    Nc                 ó&  •—  t          t          | ¦  «        j        di |¤Ž d| _        t	          |¦  «        | _        || _        || _        || _        || _	        || _
        || _        || _        |	| _        |
| _        || _        || _        || _        dS )aJ  __init__ method.

        :param action: Action performed when this button is tapped
        :type action: list[T <= :py:class:`linebot.models.actions.Action`]
        :param float flex: The ratio of the width or height of this component within the parent box
        :param str margin: Minimum space between this component
            and the previous component in the parent box
        :param str position: Reference position for placing this box
        :param str offset_top: The top offset
        :param str offset_bottom: The bottom offset
        :param str offset_start: The left offset
        :param str offset_end: The right offset
        :param str height: Height of the button
        :param str style: Style of the button
        :param str color: Character color when the style property is link.
            Background color when the style property is primary or secondary.
            Use a hexadecimal color code
        :param str gravity: Vertical alignment style
        :param str adjust_mode: The method by which to adjust the text font size
        :param kwargs:
        rU   Nr   )r   rq   r   r   r   r@   r   re   rk   rl   rm   rn   ro   rb   ÚstyleÚcolorÚgravityÚadjust_mode)r   r@   r   re   rk   rl   rm   rn   ro   rb   ry   rz   r{   r|   r   r   s                  €r   r   zButtonComponent.__init__i  sœ   ø€ ðH 	.��o˜tÑ$Ô$Ô-Ð7Ð7°Ð7Ð7Ð7ØˆŒ	Ý  Ñ(Ô(ˆŒØˆŒ	ØˆŒØ ˆŒØ$ˆŒØ*ˆÔØ(ˆÔØ$ˆŒØˆŒØˆŒ
ØˆŒ
ØˆŒØ&ˆÔÐÐr   )NNNNNNNNNNNNNr    r&   s   @r   rq   rq   `  sp   ø€ € € € € ðð ð ØØØØ Ø#Ø"Ø ØØØØØ!ð2'ð 2'ð 2'ð 2'ð 2'ð 2'ð 2'ð 2'ð 2'ð 2'r   rq   c                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )rr   z¥FillerComponent.

    https://developers.line.biz/en/reference/messaging-api/#filler

    This is an invisible component to fill extra space between components.
    Nc                 ód   •—  t          t          | ¦  «        j        di |¤Ž d| _        || _        dS )r+   rV   Nr   )r   rr   r   r   r   )r   r   r   r   s      €r   r   zFillerComponent.__init__¦  s:   ø€ ð
 	.��o˜tÑ$Ô$Ô-Ð7Ð7°Ð7Ð7Ð7ØˆŒ	ØˆŒ	ˆ	ˆ	r   rN   r    r&   s   @r   rr   rr   ž  sG   ø€ € € € € ðð ðð ð ð ð ð ð ð ð ð r   rr   c                   ó6   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )rs   zxIconComponent.

    https://developers.line.biz/en/reference/messaging-api/#icon

    This component draws an icon.
    Nc
                 óÔ   •—  t          t          | ¦  «        j        di |
¤Ž d| _        || _        || _        || _        || _        || _        || _	        || _
        || _        |	| _        dS )aˆ  __init__ method.

        :param str url: Image URL
            Protocol: HTTPS
            Image format: JPEG or PNG
        :param str margin: Minimum space between this component
            and the previous component in the parent box
        :param str position: Reference position for placing this box
        :param str offset_top: The top offset
        :param str offset_bottom: The bottom offset
        :param str offset_start: The left offset
        :param str offset_end: The right offset
        :param str size: Maximum size of the icon width
        :param str aspect_ratio: Aspect ratio of the icon
        :param kwargs:
        rW   Nr   )r   rs   r   r   Úurlre   rk   rl   rm   rn   ro   r4   Úaspect_ratio)r   r�   re   rk   rl   rm   rn   ro   r4   r‚   r   r   s              €r   r   zIconComponent.__init__¸  sw   ø€ ð6 	,��m˜TÑ"Ô"Ô+Ð5Ð5¨fÐ5Ð5Ð5ØˆŒ	ØˆŒØˆŒØ ˆŒØ$ˆŒØ*ˆÔØ(ˆÔØ$ˆŒØˆŒ	Ø(ˆÔÐÐr   )	NNNNNNNNNr    r&   s   @r   rs   rs   °  sd   ø€ € € € € ðð ð ØØØ Ø#Ø"Ø ØØ"ð%)ð %)ð %)ð %)ð %)ð %)ð %)ð %)ð %)ð %)r   rs   c                   óD   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )r9   z}ImageComponent.

    https://developers.line.biz/en/reference/messaging-api/#f-image

    This component draws an image.
    NFc                 óP  •—  t          t          | ¦  «        j        di |¤Ž d| _        || _        || _        || _        || _        || _        || _	        || _
        || _        |	| _        |
| _        || _        || _        || _        || _        t%          |¦  «        | _        || _        dS )aÊ  __init__ method.

        :param str url: Image URL
            Protocol: HTTPS
            Image format: JPEG or PNG
        :param float flex: The ratio of the width or height of this component within the parent box
        :param str margin: Minimum space between this component
            and the previous component in the parent box
        :param str position: Reference position for placing this box
        :param str offset_top: The top offset
        :param str offset_bottom: The bottom offset
        :param str offset_start: The left offset
        :param str offset_end: The right offset
        :param str align: Horizontal alignment style
        :param str gravity: Vertical alignment style
        :param str size: Maximum size of the image width
        :param str aspect_ratio: Aspect ratio of the image
        :param str aspect_mode: Style of the image
        :param str background_color: Background color of the image. Use a hexadecimal color code.
        :param action: Action performed when this image is tapped
        :type action: list[T <= :py:class:`linebot.models.actions.Action`]
        :param bool animated: True to play an animated image. Default is False.
        :param kwargs:
        r1   Nr   )r   r9   r   r   r�   r   re   rk   rl   rm   rn   ro   Úalignr{   r4   r‚   Úaspect_moderF   r   r@   Úanimated)r   r�   r   re   rk   rl   rm   rn   ro   r…   r{   r4   r‚   r†   rF   r@   r‡   r   r   s                     €r   r   zImageComponent.__init__è  s±   ø€ ðT 	-��n˜dÑ#Ô#Ô,Ð6Ð6¨vÐ6Ð6Ð6ØˆŒ	ØˆŒØˆŒ	ØˆŒØ ˆŒØ$ˆŒØ*ˆÔØ(ˆÔØ$ˆŒØˆŒ
ØˆŒØˆŒ	Ø(ˆÔØ&ˆÔØ 0ˆÔÝ  Ñ(Ô(ˆŒØ ˆŒˆˆr   )NNNNNNNNNNNNNNNFr    r&   s   @r   r9   r9   à  sy   ø€ € € € € ðð ð ØØØØ Ø#Ø"Ø ØØØØ"Ø!Ø"&ØØð!;!ð ;!ð ;!ð ;!ð ;!ð ;!ð ;!ð ;!ð ;!ð ;!r   r9   c                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )ru   z«SeparatorComponent.

    https://developers.line.biz/en/reference/messaging-api/#separator

    This component draws a separator between components in the parent box.
    Nc                 ór   •—  t          t          | ¦  «        j        di |¤Ž d| _        || _        || _        dS )zù__init__ method.

        :param str margin: Minimum space between this component
            and the previous component in the parent box
        :param str color: Color of the separator. Use a hexadecimal color code
        :param kwargs:
        rG   Nr   )r   ru   r   r   re   rz   )r   re   rz   r   r   s       €r   r   zSeparatorComponent.__init__.  sB   ø€ ð 	1�Õ  $Ñ'Ô'Ô0Ð:Ð:°6Ð:Ð:Ð:ØˆŒ	ØˆŒØˆŒ
ˆ
ˆ
r   r   r    r&   s   @r   ru   ru   &  sG   ø€ € € € € ðð ðð ð ð ð ð ð ð ð ð r   ru   c                   ó0   ‡ — e Zd ZdZ	 	 	 	 	 	 dˆ fd„	Zˆ xZS )rt   zªSpanComponent.

    https://developers.line.biz/en/reference/messaging-api/#span

    This component renders multiple text strings with different designs in one row.
    Nc                 óª   •—  t          t          | ¦  «        j        di |¤Ž d| _        || _        || _        || _        || _        || _        || _	        dS )a   __init__ method.

        :param str text: Text
        :param str color: Font color
        :param str size: Font size
        :param str weight: Font weight
        :param str style: Style of the text
        :param str decoration: Decoration of the text
        :param kwargs:
        rX   Nr   )
r   rt   r   r   rY   r4   Úweightrz   ry   Ú
decoration)	r   rY   rz   r4   rŒ   ry   r�   r   r   s	           €r   r   zSpanComponent.__init__D  s]   ø€ ð$ 	,��m˜TÑ"Ô"Ô+Ð5Ð5¨fÐ5Ð5Ð5ØˆŒ	ØˆŒ	ØˆŒ	ØˆŒØˆŒ
ØˆŒ
Ø$ˆŒˆˆr   )NNNNNNr    r&   s   @r   rt   rt   <  s[   ø€ € € € € ðð ð ØØØØØ ð%ð %ð %ð %ð %ð %ð %ð %ð %ð %r   rt   c                   óL   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )rv   z�TextComponent.

    https://developers.line.biz/en/reference/messaging-api/#f-text

    This component draws text. You can format the text.
    Nc                 ó¸  •‡ —  t          t          ‰ ¦  «        j        di |¤Ž d‰ _        |‰ _        |‰ _        |‰ _        |‰ _        |‰ _        |‰ _	        |‰ _
        |	‰ _        |
‰ _        |‰ _        |‰ _        |‰ _        |‰ _        |‰ _        |‰ _        |‰ _        t)          |¦  «        ‰ _        |‰ _        |‰ _        |rˆ fd„|D ¦   «         ‰ _        dS d‰ _        dS )a’  __init__ method.

        :param str text: Text
        :param contents: Array of spans
        :type contents: list[T <= :py:class:`linebot.models.flex_message.SpanComponent`]
        :param float flex: The ratio of the width or height of this component within the parent box
        :param str margin: Minimum space between this component
            and the previous component in the parent box
        :param str position: Reference position for placing this box
        :param str offset_top: The top offset
        :param str offset_bottom: The bottom offset
        :param str offset_start: The left offset
        :param str offset_end: The right offset
        :param str size: Font size
        :param str align: Horizontal alignment style
        :param str gravity: Vertical alignment style
        :param bool wrap: rue to wrap text. The default value is False.
            If set to True, you can use a new line character (\n) to begin on a new line.
        :param str line_spacing: Line spacing in a wrapping text
        :param int max_lines: Max number of lines
        :param str weight: Font weight
        :param str color: Font color
        :param action: Action performed when this image is tapped
        :type action: list[T <= :py:class:`linebot.models.actions.Action`]
        :param str style: Style of the text
        :param str decoration: Decoration of the text
        :param kwargs:
        rY   c                 óF   •— g | ]}‰                      |t          ¦  «        ‘ŒS r   )r6   rt   )Ú.0rM   r   s     €r   ú
<listcomp>z*TextComponent.__init__.<locals>.<listcomp>±  s*   ø€ ÐbÐbÐbÐSU˜T×;Ò;¸BÅÑNÔNÐbÐbÐbr   Nr   )r   rv   r   r   rY   r   re   rk   rl   rm   rn   ro   r4   r…   r{   ÚwrapÚline_spacingÚ	max_linesrŒ   rz   r   r@   ry   r�   r   )r   rY   r   r   re   rk   rl   rm   rn   ro   r4   r…   r{   r“   r”   r•   rŒ   rz   r@   ry   r�   r   r   s   `                     €r   r   zTextComponent.__init__h  sô   øø€ ðd 	,��m˜TÑ"Ô"Ô+Ð5Ð5¨fÐ5Ð5Ð5ØˆŒ	ØˆŒ	ØˆŒ	ØˆŒØ ˆŒØ$ˆŒØ*ˆÔØ(ˆÔØ$ˆŒØˆŒ	ØˆŒ
ØˆŒØˆŒ	Ø(ˆÔØ"ˆŒØˆŒØˆŒ
Ý  Ñ(Ô(ˆŒØˆŒ
Ø$ˆŒàð 	!ØbÐbÐbÐbÐYaÐbÑbÔbˆDŒMˆMˆMà ˆDŒMˆMˆMr   )NNNNNNNNNNNNNNNNNNNNr    r&   s   @r   rv   rv   `  s�   ø€ € € € € ðð ð ØØØØØ Ø#Ø"Ø ØØØØØ"ØØØØØØ ð)K!ð K!ð K!ð K!ð K!ð K!ð K!ð K!ð K!ð K!r   rv   c                   ó.   ‡ — e Zd ZdZ	 	 	 	 	 dˆ fd„	Zˆ xZS )r:   z~VideoComponent.

    https://developers.line.biz/en/reference/messaging-api/#f-video

    This component renders a video.
    Nc                 óø   •—  t          t          | ¦  «        j        di |¤Ž d| _        || _        || _        |                      |t          t          dœ¦  «        | _	        || _
        t          |¦  «        | _        dS )a  __init__ method.

        :param str url: URL of video file
        :param str preview_url: URL of preview image
        :param alt_content: Alternative content
        :type alt_content: :py:class:`linebot.models.flex_message.ImageComponent`
            | :py:class:`linebot.models.flex_message.BoxComponent`
        :param float aspect_ratio: Aspect ratio of the video
        :param action: Action performed when this video is tapped
        :type action: list[T <= :py:class:`linebot.models.actions.Action`]
        :param kwargs:
        r3   )r1   r2   Nr   )r   r:   r   r   r�   Úpreview_urlr   r9   r7   Úalt_contentr‚   r   r@   )r   r�   r˜   r™   r‚   r@   r   r   s          €r   r   zVideoComponent.__init__¾  s†   ø€ ð& 	-��n˜dÑ#Ô#Ô,Ð6Ð6¨vÐ6Ð6Ð6àˆŒ	ØˆŒØ&ˆÔØ×DÒDØÝ'Ý#ðð ñ
ô 
ˆÔð )ˆÔÝ  Ñ(Ô(ˆŒˆˆr   )NNNNNr    r&   s   @r   r:   r:   ¶  sX   ø€ € € € € ðð ð Ø!Ø!Ø"Øð)ð )ð )ð )ð )ð )ð )ð )ð )ð )r   r:   N)r$   Úabcr   Úfuture.utilsr   rp   r   r   Úactionsr   Úbaser	   Úsend_messagesr
   r   r(   r   r>   rC   r   rP   r7   rq   rr   rs   r9   ru   rt   rv   r:   r   r   r   ú<module>rŸ      s‚  ðð *Ð )ð Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &ð
ð 
ð 
ð 
ð 
�kñ 
ô 
ð 
ð:ð ð ð ð �N�N 7¨DÑ1Ô1ñ ô ð ð$0)ð 0)ð 0)ð 0)ð 0)�mñ 0)ô 0)ð 0)ðfIð Ið Ið Ið I�.�. ¨$Ñ/Ô/ñ Iô Ið Ið6/ð /ð /ð /ð /�� ¨Ñ.Ô.ñ /ô /ð /ð.%ð %ð %ð %ð %˜ñ %ô %ð %ð:ð ð ð ð �N�N 7¨DÑ1Ô1ñ ô ð ð$~%ð ~%ð ~%ð ~%ð ~%�=ñ ~%ô ~%ð ~%ðB;'ð ;'ð ;'ð ;'ð ;'�mñ ;'ô ;'ð ;'ð|ð ð ð ð �mñ ô ð ð$-)ð -)ð -)ð -)ð -)�Mñ -)ô -)ð -)ð`C!ð C!ð C!ð C!ð C!�]ñ C!ô C!ð C!ðLð ð ð ð ˜ñ ô ð ð,!%ð !%ð !%ð !%ð !%�Mñ !%ô !%ð !%ðHS!ð S!ð S!ð S!ð S!�Mñ S!ô S!ð S!ðl')ð ')ð ')ð ')ð ')�]ñ ')ô ')ð ')ð ')ð ')r   