
    gC                     .    d dl mZ d dlZ G d de      Zy)    )BaseLayoutHierarchyTypeNc                       e Zd ZdZdZh dZed        Zej                  d        Zed        Z	e	j                  d        Z	ed        Z
e
j                  d	        Z
ed
        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed        Zej                  d        Zed         Zej                  d!        Zed"        Zej                  d#        Zed$        Zej                  d%        Zed&        Zej                  d'        Zed(        Zej                  d)        Zed*        Zej                  d+        Zed,        Zej                  d-        Zed.        Zej                  d/        Zed0        Zej                  d1        Zed2        Zej                  d3        Zed4        Z e j                  d5        Z ed6        Z!e!j                  d7        Z!ed8        Z"e"j                  d9        Z"ed:        Z#e#j                  d;        Z#ed<        Z$e$j                  d=        Z$ed>        Z%e%j                  d?        Z%ed@        Z&e&j                  dA        Z&edB        Z'e'j                  dC        Z'edD        Z(e(j                  dE        Z(edF        Z)e)j                  dG        Z)edH        Z*e*j                  dI        Z*edJ        Z+e+j                  dK        Z+edL        Z,e,j                  dM        Z,edN        Z-	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dP fdO	Z. xZ/S )Q
Annotationzlayout.scenezlayout.scene.annotation>%   xyzaxayfontnametextalignwidthheightvalignxshiftyshiftbgcoloropacityvisiblexanchoryanchorstandoff	arrowhead	arrowside	arrowsize	borderpad	hovertext	showarrow	textangle
arrowcolor
arrowwidth
hoverlabelbordercolorborderwidthcaptureeventsstartstandoffstartarrowheadstartarrowsizetemplateitemnamec                     | d   S )a  
        Sets the horizontal alignment of the `text` within the box. Has
        an effect only if `text` spans two or more lines (i.e. `text`
        contains one or more <br> HTML tags) or if an explicit width is
        set to override the text width.

        The 'align' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['left', 'center', 'right']

        Returns
        -------
        Any
        r    selfs    g/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/plotly/graph_objs/layout/scene/_annotation.pyr   zAnnotation.align5   s      G}    c                     || d<   y )Nr   r,   r.   vals     r/   r   zAnnotation.alignG       Wr0   c                     | d   S )a
  
        Sets the color of the annotation arrow.

        The 'arrowcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r!   r,   r-   s    r/   r!   zAnnotation.arrowcolorM   s    f L!!r0   c                     || d<   y )Nr!   r,   r2   s     r/   r!   zAnnotation.arrowcolor        \r0   c                     | d   S )a  
        Sets the end annotation arrow head style.

        The 'arrowhead' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 8]

        Returns
        -------
        int
        r   r,   r-   s    r/   r   zAnnotation.arrowhead        K  r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.arrowhead       [r0   c                     | d   S )ak  
        Sets the annotation arrow head position.

        The 'arrowside' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['end', 'start'] joined with '+' characters
            (e.g. 'end+start')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        r   r,   r-   s    r/   r   zAnnotation.arrowside        K  r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.arrowside   r;   r0   c                     | d   S )a^  
        Sets the size of the end annotation arrow head, relative to
        `arrowwidth`. A value of 1 (default) gives a head about 3x as
        wide as the line.

        The 'arrowsize' property is a number and may be specified as:
          - An int or float in the interval [0.3, inf]

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.arrowsize        K  r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.arrowsize   r;   r0   c                     | d   S )z
        Sets the width (in px) of annotation arrow line.

        The 'arrowwidth' property is a number and may be specified as:
          - An int or float in the interval [0.1, inf]

        Returns
        -------
        int|float
        r"   r,   r-   s    r/   r"   zAnnotation.arrowwidth   s     L!!r0   c                     || d<   y )Nr"   r,   r2   s     r/   r"   zAnnotation.arrowwidth   r7   r0   c                     | d   S )z
        Sets the x component of the arrow tail about the arrow head (in
        pixels).

        The 'ax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r	   r,   r-   s    r/   r	   zAnnotation.ax        Dzr0   c                     || d<   y )Nr	   r,   r2   s     r/   r	   zAnnotation.ax       T
r0   c                     | d   S )z
        Sets the y component of the arrow tail about the arrow head (in
        pixels).

        The 'ay' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r
   r,   r-   s    r/   r
   zAnnotation.ay   rE   r0   c                     || d<   y )Nr
   r,   r2   s     r/   r
   zAnnotation.ay  rG   r0   c                     | d   S )a
  
        Sets the background color of the annotation.

        The 'bgcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r,   r-   s    r/   r   zAnnotation.bgcolor  s    f Ir0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.bgcolor=      Yr0   c                     | d   S )a4
  
        Sets the color of the border enclosing the annotation `text`.

        The 'bordercolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r$   r,   r-   s    r/   r$   zAnnotation.bordercolorC  s    f M""r0   c                     || d<   y )Nr$   r,   r2   s     r/   r$   zAnnotation.bordercolorx      !]r0   c                     | d   S )a  
        Sets the padding (in px) between the `text` and the enclosing
        border.

        The 'borderpad' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.borderpad~  r9   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.borderpad  r;   r0   c                     | d   S )a  
        Sets the width (in px) of the border enclosing the annotation
        `text`.

        The 'borderwidth' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r%   r,   r-   s    r/   r%   zAnnotation.borderwidth  s     M""r0   c                     || d<   y )Nr%   r,   r2   s     r/   r%   zAnnotation.borderwidth  rO   r0   c                     | d   S )a1  
        Determines whether the annotation text box captures mouse move
        and click events, or allows those events to pass through to
        data points in the plot that may be behind the annotation. By
        default `captureevents` is False unless `hovertext` is
        provided. If you use the event `plotly_clickannotation` without
        `hovertext` you must explicitly enable `captureevents`.

        The 'captureevents' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r&   r,   r-   s    r/   r&   zAnnotation.captureevents  s    " O$$r0   c                     || d<   y )Nr&   r,   r2   s     r/   r&   zAnnotation.captureevents       #_r0   c                     | d   S )a@
  
        Sets the annotation text font.

        The 'font' property is an instance of Font
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.scene.annotation.Font`
          - A dict of string/value properties that will be passed
            to the Font constructor

            Supported dict properties:

                color

                family
                    HTML font family - the typeface that will be
                    applied by the web browser. The web browser
                    will only be able to apply a font if it is
                    available on the system which it operates.
                    Provide multiple font families, separated by
                    commas, to indicate the preference in which to
                    apply fonts if they aren't available on the
                    system. The Chart Studio Cloud (at
                    https://chart-studio.plotly.com or on-premise)
                    generates images on a server, where only a
                    select number of fonts are installed and
                    supported. These include "Arial", "Balto",
                    "Courier New", "Droid Sans", "Droid Serif",
                    "Droid Sans Mono", "Gravitas One", "Old
                    Standard TT", "Open Sans", "Overpass", "PT Sans
                    Narrow", "Raleway", "Times New Roman".
                lineposition
                    Sets the kind of decoration line(s) with text,
                    such as an "under", "over" or "through" as well
                    as combinations e.g. "under+over", etc.
                shadow
                    Sets the shape and color of the shadow behind
                    text. "auto" places minimal shadow and applies
                    contrast text font color. See
                    https://developer.mozilla.org/en-
                    US/docs/Web/CSS/text-shadow for additional
                    options.
                size

                style
                    Sets whether a font should be styled with a
                    normal or italic face from its family.
                textcase
                    Sets capitalization of text. It can be used to
                    make text appear in all-uppercase or all-
                    lowercase, or with each word capitalized.
                variant
                    Sets the variant of the font.
                weight
                    Sets the weight (or boldness) of the font.

        Returns
        -------
        plotly.graph_objs.layout.scene.annotation.Font
        r   r,   r-   s    r/   r   zAnnotation.font  s    z F|r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.font       Vr0   c                     | d   S )a=  
        Sets an explicit height for the text box. null (default) lets
        the text set the box height. Taller text will be clipped.

        The 'height' property is a number and may be specified as:
          - An int or float in the interval [1, inf]

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.height       H~r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.height      Xr0   c                     | d   S )a8  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.scene.annotation.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor

            Supported dict properties:

                bgcolor
                    Sets the background color of the hover label.
                    By default uses the annotation's `bgcolor` made
                    opaque, or white if it was transparent.
                bordercolor
                    Sets the border color of the hover label. By
                    default uses either dark grey or white, for
                    maximum contrast with `hoverlabel.bgcolor`.
                font
                    Sets the hover label text font. By default uses
                    the global hover font and size, with color from
                    `hoverlabel.bordercolor`.

        Returns
        -------
        plotly.graph_objs.layout.scene.annotation.Hoverlabel
        r#   r,   r-   s    r/   r#   zAnnotation.hoverlabel  s    8 L!!r0   c                     || d<   y )Nr#   r,   r2   s     r/   r#   zAnnotation.hoverlabel9  r7   r0   c                     | d   S )aD  
        Sets text to appear when hovering over this annotation. If
        omitted or blank, no hover label will appear.

        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r,   r-   s    r/   r   zAnnotation.hovertext?  r@   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.hovertextO  r;   r0   c                     | d   S )aw  
        When used in a template, named items are created in the output
        figure in addition to any items the figure already has in this
        array. You can modify these items in the output figure by
        making your own item with `templateitemname` matching this
        `name` alongside your modifications (including `visible: false`
        or `enabled: false` to hide it). Has no effect outside of a
        template.

        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r,   r-   s    r/   r   zAnnotation.nameU  s    & F|r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.namej  rY   r0   c                     | d   S )z
        Sets the opacity of the annotation (text + arrow).

        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.opacityp       Ir0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.opacity~  rL   r0   c                     | d   S )aX  
        Determines whether or not the annotation is drawn with an
        arrow. If True, `text` is placed near the arrow's tail. If
        False, `text` lines up with the `x` and `y` provided.

        The 'showarrow' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r,   r-   s    r/   r   zAnnotation.showarrow  r@   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.showarrow  r;   r0   c                     | d   S )a
  
        Sets a distance, in pixels, to move the end arrowhead away from
        the position it is pointing at, for example to point at the
        edge of a marker independent of zoom. Note that this shortens
        the arrow from the `ax` / `ay` vector, in contrast to `xshift`
        / `yshift` which moves everything by this amount.

        The 'standoff' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.standoff  s      Jr0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.standoff  s    Zr0   c                     | d   S )a  
        Sets the start annotation arrow head style.

        The 'startarrowhead' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 8]

        Returns
        -------
        int
        r(   r,   r-   s    r/   r(   zAnnotation.startarrowhead  s     $%%r0   c                     || d<   y )Nr(   r,   r2   s     r/   r(   zAnnotation.startarrowhead      !$r0   c                     | d   S )ae  
        Sets the size of the start annotation arrow head, relative to
        `arrowwidth`. A value of 1 (default) gives a head about 3x as
        wide as the line.

        The 'startarrowsize' property is a number and may be specified as:
          - An int or float in the interval [0.3, inf]

        Returns
        -------
        int|float
        r)   r,   r-   s    r/   r)   zAnnotation.startarrowsize  s     $%%r0   c                     || d<   y )Nr)   r,   r2   s     r/   r)   zAnnotation.startarrowsize  rm   r0   c                     | d   S )a  
        Sets a distance, in pixels, to move the start arrowhead away
        from the position it is pointing at, for example to point at
        the edge of a marker independent of zoom. Note that this
        shortens the arrow from the `ax` / `ay` vector, in contrast to
        `xshift` / `yshift` which moves everything by this amount.

        The 'startstandoff' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r'   r,   r-   s    r/   r'   zAnnotation.startstandoff  s      O$$r0   c                     || d<   y )Nr'   r,   r2   s     r/   r'   zAnnotation.startstandoff  rV   r0   c                     | d   S )a  
        Used to refer to a named item in this array in the template.
        Named items from the template will be created even without a
        matching item in the input figure, but you can modify one by
        making an item with `templateitemname` matching its `name`,
        alongside your modifications (including `visible: false` or
        `enabled: false` to hide it). If there is no template or no
        matching item, this item will be hidden unless you explicitly
        show it with `visible: true`.

        The 'templateitemname' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r*   r,   r-   s    r/   r*   zAnnotation.templateitemname  s    ( &''r0   c                     || d<   y )Nr*   r,   r2   s     r/   r*   zAnnotation.templateitemname  s    #& r0   c                     | d   S )a  
        Sets the text associated with this annotation. Plotly uses a
        subset of HTML tags to do things like newline (<br>), bold
        (<b></b>), italics (<i></i>), hyperlinks (<a href='...'></a>).
        Tags <em>, <sup>, <sub>, <s>, <u> <span> are also supported.

        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r,   r-   s    r/   r   zAnnotation.text  s      F|r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.text#  rY   r0   c                     | d   S )a  
        Sets the angle at which the `text` is drawn with respect to the
        horizontal.

        The 'textangle' property is a angle (in degrees) that may be
        specified as a number between -180 and 180.
        Numeric values outside this range are converted to the equivalent value
        (e.g. 270 is converted to -90).

        Returns
        -------
        int|float
        r    r,   r-   s    r/   r    zAnnotation.textangle)  r=   r0   c                     || d<   y )Nr    r,   r2   s     r/   r    zAnnotation.textangle:  r;   r0   c                     | d   S )a  
        Sets the vertical alignment of the `text` within the box. Has
        an effect only if an explicit height is set to override the
        text height.

        The 'valign' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top', 'middle', 'bottom']

        Returns
        -------
        Any
        r   r,   r-   s    r/   r   zAnnotation.valign@  s     H~r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.valignQ  r]   r0   c                     | d   S )z
        Determines whether or not this annotation is visible.

        The 'visible' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r,   r-   s    r/   r   zAnnotation.visibleW  re   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.visiblee  rL   r0   c                     | d   S )a  
        Sets an explicit width for the text box. null (default) lets
        the text set the box width. Wider text will be clipped. There
        is no automatic wrapping; use <br> to start a new line.

        The 'width' property is a number and may be specified as:
          - An int or float in the interval [1, inf]

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.widthk  s     G}r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.width{  r4   r0   c                     | d   S )z
        Sets the annotation's x position.

        The 'x' property accepts values of any type

        Returns
        -------
        Any
        r   r,   r-   s    r/   r   zAnnotation.x       Cyr0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.x      S	r0   c                     | d   S )a5  
        Sets the text box's horizontal position anchor This anchor
        binds the `x` position to the "left", "center" or "right" of
        the annotation. For example, if `x` is set to 1, `xref` to
        "paper" and `xanchor` to "right" then the right-most portion of
        the annotation lines up with the right-most edge of the
        plotting area. If "auto", the anchor is equivalent to "center"
        for data-referenced annotations or if there is an arrow,
        whereas for paper-referenced with no arrow, the anchor picked
        corresponds to the closest side.

        The 'xanchor' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['auto', 'left', 'center', 'right']

        Returns
        -------
        Any
        r   r,   r-   s    r/   r   zAnnotation.xanchor      * Ir0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.xanchor  rL   r0   c                     | d   S )a"  
        Shifts the position of the whole annotation and arrow to the
        right (positive) or left (negative) by this many pixels.

        The 'xshift' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.xshift  r[   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.xshift  r]   r0   c                     | d   S )z
        Sets the annotation's y position.

        The 'y' property accepts values of any type

        Returns
        -------
        Any
        r   r,   r-   s    r/   r   zAnnotation.y  r   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.y  r   r0   c                     | d   S )a.  
        Sets the text box's vertical position anchor This anchor binds
        the `y` position to the "top", "middle" or "bottom" of the
        annotation. For example, if `y` is set to 1, `yref` to "paper"
        and `yanchor` to "top" then the top-most portion of the
        annotation lines up with the top-most edge of the plotting
        area. If "auto", the anchor is equivalent to "middle" for data-
        referenced annotations or if there is an arrow, whereas for
        paper-referenced with no arrow, the anchor picked corresponds
        to the closest side.

        The 'yanchor' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['auto', 'top', 'middle', 'bottom']

        Returns
        -------
        Any
        r   r,   r-   s    r/   r   zAnnotation.yanchor  r   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.yanchor  rL   r0   c                     | d   S )a  
        Shifts the position of the whole annotation and arrow up
        (positive) or down (negative) by this many pixels.

        The 'yshift' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r,   r-   s    r/   r   zAnnotation.yshift  r[   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.yshift  r]   r0   c                     | d   S )z
        Sets the annotation's z position.

        The 'z' property accepts values of any type

        Returns
        -------
        Any
        r   r,   r-   s    r/   r   zAnnotation.z  r   r0   c                     || d<   y )Nr   r,   r2   s     r/   r   zAnnotation.z  r   r0   c                      y)Na          align
            Sets the horizontal alignment of the `text` within the
            box. Has an effect only if `text` spans two or more
            lines (i.e. `text` contains one or more <br> HTML tags)
            or if an explicit width is set to override the text
            width.
        arrowcolor
            Sets the color of the annotation arrow.
        arrowhead
            Sets the end annotation arrow head style.
        arrowside
            Sets the annotation arrow head position.
        arrowsize
            Sets the size of the end annotation arrow head,
            relative to `arrowwidth`. A value of 1 (default) gives
            a head about 3x as wide as the line.
        arrowwidth
            Sets the width (in px) of annotation arrow line.
        ax
            Sets the x component of the arrow tail about the arrow
            head (in pixels).
        ay
            Sets the y component of the arrow tail about the arrow
            head (in pixels).
        bgcolor
            Sets the background color of the annotation.
        bordercolor
            Sets the color of the border enclosing the annotation
            `text`.
        borderpad
            Sets the padding (in px) between the `text` and the
            enclosing border.
        borderwidth
            Sets the width (in px) of the border enclosing the
            annotation `text`.
        captureevents
            Determines whether the annotation text box captures
            mouse move and click events, or allows those events to
            pass through to data points in the plot that may be
            behind the annotation. By default `captureevents` is
            False unless `hovertext` is provided. If you use the
            event `plotly_clickannotation` without `hovertext` you
            must explicitly enable `captureevents`.
        font
            Sets the annotation text font.
        height
            Sets an explicit height for the text box. null
            (default) lets the text set the box height. Taller text
            will be clipped.
        hoverlabel
            :class:`plotly.graph_objects.layout.scene.annotation.Ho
            verlabel` instance or dict with compatible properties
        hovertext
            Sets text to appear when hovering over this annotation.
            If omitted or blank, no hover label will appear.
        name
            When used in a template, named items are created in the
            output figure in addition to any items the figure
            already has in this array. You can modify these items
            in the output figure by making your own item with
            `templateitemname` matching this `name` alongside your
            modifications (including `visible: false` or `enabled:
            false` to hide it). Has no effect outside of a
            template.
        opacity
            Sets the opacity of the annotation (text + arrow).
        showarrow
            Determines whether or not the annotation is drawn with
            an arrow. If True, `text` is placed near the arrow's
            tail. If False, `text` lines up with the `x` and `y`
            provided.
        standoff
            Sets a distance, in pixels, to move the end arrowhead
            away from the position it is pointing at, for example
            to point at the edge of a marker independent of zoom.
            Note that this shortens the arrow from the `ax` / `ay`
            vector, in contrast to `xshift` / `yshift` which moves
            everything by this amount.
        startarrowhead
            Sets the start annotation arrow head style.
        startarrowsize
            Sets the size of the start annotation arrow head,
            relative to `arrowwidth`. A value of 1 (default) gives
            a head about 3x as wide as the line.
        startstandoff
            Sets a distance, in pixels, to move the start arrowhead
            away from the position it is pointing at, for example
            to point at the edge of a marker independent of zoom.
            Note that this shortens the arrow from the `ax` / `ay`
            vector, in contrast to `xshift` / `yshift` which moves
            everything by this amount.
        templateitemname
            Used to refer to a named item in this array in the
            template. Named items from the template will be created
            even without a matching item in the input figure, but
            you can modify one by making an item with
            `templateitemname` matching its `name`, alongside your
            modifications (including `visible: false` or `enabled:
            false` to hide it). If there is no template or no
            matching item, this item will be hidden unless you
            explicitly show it with `visible: true`.
        text
            Sets the text associated with this annotation. Plotly
            uses a subset of HTML tags to do things like newline
            (<br>), bold (<b></b>), italics (<i></i>), hyperlinks
            (<a href='...'></a>). Tags <em>, <sup>, <sub>, <s>, <u>
            <span> are also supported.
        textangle
            Sets the angle at which the `text` is drawn with
            respect to the horizontal.
        valign
            Sets the vertical alignment of the `text` within the
            box. Has an effect only if an explicit height is set to
            override the text height.
        visible
            Determines whether or not this annotation is visible.
        width
            Sets an explicit width for the text box. null (default)
            lets the text set the box width. Wider text will be
            clipped. There is no automatic wrapping; use <br> to
            start a new line.
        x
            Sets the annotation's x position.
        xanchor
            Sets the text box's horizontal position anchor This
            anchor binds the `x` position to the "left", "center"
            or "right" of the annotation. For example, if `x` is
            set to 1, `xref` to "paper" and `xanchor` to "right"
            then the right-most portion of the annotation lines up
            with the right-most edge of the plotting area. If
            "auto", the anchor is equivalent to "center" for data-
            referenced annotations or if there is an arrow, whereas
            for paper-referenced with no arrow, the anchor picked
            corresponds to the closest side.
        xshift
            Shifts the position of the whole annotation and arrow
            to the right (positive) or left (negative) by this many
            pixels.
        y
            Sets the annotation's y position.
        yanchor
            Sets the text box's vertical position anchor This
            anchor binds the `y` position to the "top", "middle" or
            "bottom" of the annotation. For example, if `y` is set
            to 1, `yref` to "paper" and `yanchor` to "top" then the
            top-most portion of the annotation lines up with the
            top-most edge of the plotting area. If "auto", the
            anchor is equivalent to "middle" for data-referenced
            annotations or if there is an arrow, whereas for paper-
            referenced with no arrow, the anchor picked corresponds
            to the closest side.
        yshift
            Shifts the position of the whole annotation and arrow
            up (positive) or down (negative) by this many pixels.
        z
            Sets the annotation's z position.
        r,   r-   s    r/   _prop_descriptionszAnnotation._prop_descriptions  s    ]r0   c'           	      
   t         t        |   d       d|'v r|'d   | _        y|i }nXt	        || j
                        r|j                         }n1t	        |t              rt        j                  |      }nt        d      |'j                  dd      | _        |'j                  dd      | _        |j                  d	d      }(||n|(}(|(|(| d	<   |j                  d
d      }(||n|(}(|(|(| d
<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(|	|	n|(}(|(|(| d<   |j                  dd      }(|
|
n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  dd      }(||n|(}(|(|(| d<   |j                  d d      }(||n|(}(|(|(| d <   |j                  d!d      }(||n|(}(|(|(| d!<   |j                  d"d      }(||n|(}(|(|(| d"<   |j                  d#d      }(||n|(}(|(|(| d#<   |j                  d$d      }(||n|(}(|(|(| d$<   |j                  d%d      }(||n|(}(|(|(| d%<   |j                  d&d      }(||n|(}(|(|(| d&<   |j                  d'd      }(| | n|(}(|(|(| d'<   |j                  d(d      }(|!|!n|(}(|(|(| d(<   |j                  d)d      }(|"|"n|(}(|(|(| d)<   |j                  d*d      }(|#|#n|(}(|(|(| d*<   |j                  d+d      }(|$|$n|(}(|(|(| d+<   |j                  d,d      }(|%|%n|(}(|(|(| d,<   |j                  d-d      }(|&|&n|(}(|(|(| d-<    | j                  d.i t        |fi |' d| _        y)/a  
        Construct a new Annotation object

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of
            :class:`plotly.graph_objs.layout.scene.Annotation`
        align
            Sets the horizontal alignment of the `text` within the
            box. Has an effect only if `text` spans two or more
            lines (i.e. `text` contains one or more <br> HTML tags)
            or if an explicit width is set to override the text
            width.
        arrowcolor
            Sets the color of the annotation arrow.
        arrowhead
            Sets the end annotation arrow head style.
        arrowside
            Sets the annotation arrow head position.
        arrowsize
            Sets the size of the end annotation arrow head,
            relative to `arrowwidth`. A value of 1 (default) gives
            a head about 3x as wide as the line.
        arrowwidth
            Sets the width (in px) of annotation arrow line.
        ax
            Sets the x component of the arrow tail about the arrow
            head (in pixels).
        ay
            Sets the y component of the arrow tail about the arrow
            head (in pixels).
        bgcolor
            Sets the background color of the annotation.
        bordercolor
            Sets the color of the border enclosing the annotation
            `text`.
        borderpad
            Sets the padding (in px) between the `text` and the
            enclosing border.
        borderwidth
            Sets the width (in px) of the border enclosing the
            annotation `text`.
        captureevents
            Determines whether the annotation text box captures
            mouse move and click events, or allows those events to
            pass through to data points in the plot that may be
            behind the annotation. By default `captureevents` is
            False unless `hovertext` is provided. If you use the
            event `plotly_clickannotation` without `hovertext` you
            must explicitly enable `captureevents`.
        font
            Sets the annotation text font.
        height
            Sets an explicit height for the text box. null
            (default) lets the text set the box height. Taller text
            will be clipped.
        hoverlabel
            :class:`plotly.graph_objects.layout.scene.annotation.Ho
            verlabel` instance or dict with compatible properties
        hovertext
            Sets text to appear when hovering over this annotation.
            If omitted or blank, no hover label will appear.
        name
            When used in a template, named items are created in the
            output figure in addition to any items the figure
            already has in this array. You can modify these items
            in the output figure by making your own item with
            `templateitemname` matching this `name` alongside your
            modifications (including `visible: false` or `enabled:
            false` to hide it). Has no effect outside of a
            template.
        opacity
            Sets the opacity of the annotation (text + arrow).
        showarrow
            Determines whether or not the annotation is drawn with
            an arrow. If True, `text` is placed near the arrow's
            tail. If False, `text` lines up with the `x` and `y`
            provided.
        standoff
            Sets a distance, in pixels, to move the end arrowhead
            away from the position it is pointing at, for example
            to point at the edge of a marker independent of zoom.
            Note that this shortens the arrow from the `ax` / `ay`
            vector, in contrast to `xshift` / `yshift` which moves
            everything by this amount.
        startarrowhead
            Sets the start annotation arrow head style.
        startarrowsize
            Sets the size of the start annotation arrow head,
            relative to `arrowwidth`. A value of 1 (default) gives
            a head about 3x as wide as the line.
        startstandoff
            Sets a distance, in pixels, to move the start arrowhead
            away from the position it is pointing at, for example
            to point at the edge of a marker independent of zoom.
            Note that this shortens the arrow from the `ax` / `ay`
            vector, in contrast to `xshift` / `yshift` which moves
            everything by this amount.
        templateitemname
            Used to refer to a named item in this array in the
            template. Named items from the template will be created
            even without a matching item in the input figure, but
            you can modify one by making an item with
            `templateitemname` matching its `name`, alongside your
            modifications (including `visible: false` or `enabled:
            false` to hide it). If there is no template or no
            matching item, this item will be hidden unless you
            explicitly show it with `visible: true`.
        text
            Sets the text associated with this annotation. Plotly
            uses a subset of HTML tags to do things like newline
            (<br>), bold (<b></b>), italics (<i></i>), hyperlinks
            (<a href='...'></a>). Tags <em>, <sup>, <sub>, <s>, <u>
            <span> are also supported.
        textangle
            Sets the angle at which the `text` is drawn with
            respect to the horizontal.
        valign
            Sets the vertical alignment of the `text` within the
            box. Has an effect only if an explicit height is set to
            override the text height.
        visible
            Determines whether or not this annotation is visible.
        width
            Sets an explicit width for the text box. null (default)
            lets the text set the box width. Wider text will be
            clipped. There is no automatic wrapping; use <br> to
            start a new line.
        x
            Sets the annotation's x position.
        xanchor
            Sets the text box's horizontal position anchor This
            anchor binds the `x` position to the "left", "center"
            or "right" of the annotation. For example, if `x` is
            set to 1, `xref` to "paper" and `xanchor` to "right"
            then the right-most portion of the annotation lines up
            with the right-most edge of the plotting area. If
            "auto", the anchor is equivalent to "center" for data-
            referenced annotations or if there is an arrow, whereas
            for paper-referenced with no arrow, the anchor picked
            corresponds to the closest side.
        xshift
            Shifts the position of the whole annotation and arrow
            to the right (positive) or left (negative) by this many
            pixels.
        y
            Sets the annotation's y position.
        yanchor
            Sets the text box's vertical position anchor This
            anchor binds the `y` position to the "top", "middle" or
            "bottom" of the annotation. For example, if `y` is set
            to 1, `yref` to "paper" and `yanchor` to "top" then the
            top-most portion of the annotation lines up with the
            top-most edge of the plotting area. If "auto", the
            anchor is equivalent to "middle" for data-referenced
            annotations or if there is an arrow, whereas for paper-
            referenced with no arrow, the anchor picked corresponds
            to the closest side.
        yshift
            Shifts the position of the whole annotation and arrow
            up (positive) or down (negative) by this many pixels.
        z
            Sets the annotation's z position.

        Returns
        -------
        Annotation
        annotations_parentNzThe first argument to the plotly.graph_objs.layout.scene.Annotation
constructor must be a dict or
an instance of :class:`plotly.graph_objs.layout.scene.Annotation`skip_invalidF	_validateTr   r!   r   r   r   r"   r	   r
   r   r$   r   r%   r&   r   r   r#   r   r   r   r   r   r(   r)   r'   r*   r   r    r   r   r   r   r   r   r   r   r   r   r,   )superr   __init__r   
isinstance	__class__to_plotly_jsondict_copycopy
ValueErrorpop_skip_invalidr   _process_kwargs)*r.   argr   r!   r   r   r   r"   r	   r
   r   r$   r   r%   r&   r   r   r#   r   r   r   r   r   r(   r)   r'   r*   r   r    r   r   r   r   r   r   r   r   r   r   kwargs_vr   s*                                            r/   r   zAnnotation.__init__  s   h 	j$(7!),DL ;CT^^,$$&CT"**S/CE  $ZZ>K6 WWWd#'UR>DMWW\4(%1Zr>!#DWW[$'#/YR> "DWW[$'#/YR> "DWW[$'#/YR> "DWW\4(%1Zr>!#DWWT4 >Rr>DJWWT4 >Rr>DJWWY%+W> DOWW]D)'3[>"$DWW[$'#/YR> "DWW]D)'3[>"$DWW_d++7]R>$&D!WWVT"%T2>DLWWXt$)Vr>DNWW\4(%1Zr>!#DWW[$'#/YR> "DWWVT"%T2>DLWWY%+W> DOWW[$'#/YR> "DWWZ&!-X2>!DWW%t,-9^r>%'D!"WW%t,-9^r>%'D!"WW_d++7]R>$&D!WW'.!1!=2>')D#$WWVT"%T2>DLWW[$'#/YR> "DWWXt$)Vr>DNWWY%+W> DOWWWd#'UR>DMWWS$-QR>DIWWY%+W> DOWWXt$)Vr>DNWWS$-QR>DIWWY%+W> DOWWXt$)Vr>DNWWS$-QR>DI 	3tC2623 #r0   )&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)0__name__
__module____qualname___parent_path_str	_path_str_valid_propspropertyr   setterr!   r   r   r   r"   r	   r
   r   r$   r   r%   r&   r   r   r#   r   r   r   r   r   r(   r)   r'   r*   r   r    r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r   s   @r/   r   r      s2    &)I&LT  " \\ 
 2" 2"h ! !
 ! !    
 ! !     
 ! !    
 " " ! !
   YY 
   YY 
 2 2h ^^ 
 2# 2#h " "
 ! !    
 # # " "
 % %$ $ $
 < <| 
[[ 
   ]] 
 " ": ! !
 ! !    
  ( 
[[ 
   ^^ 
 ! !    
    " __ 
 & & % %
 & & % %
 % %" $ $
 ( (* ' '
  " 
[[ 
 ! !     
    ]] 
   ^^ 
   \\ 
 
 
 XX 
  , ^^ 
   ]] 
 
 
 XX 
  , ^^ 
   ]] 
 
 
 XX 
 ^ ^D 


OL# L#r0   r   )plotly.basedatatypesr   _BaseLayoutHierarchyTyper   r   r   r,   r0   r/   <module>r      s    T F#) F#r0   