
    -e;                        d dl mZ d dlZ ej        e          ZddlmZ ddlm	Z	m
Z
mZmZmZmZ ddlmZ dZ G d d	e          Ze G d
 de                      Z G d de          Z G d de          ZdS )    )annotationsN   )abstract)DictIntListSeqStringStruct)Model)IntersectRenderers	SelectionSelectionPolicyUnionRenderersc                       e Zd ZdZd fdZ eeg d          Z eeg d          Z e	e
 ee          i d          Z e eeeee	          d
          Z xZS )r   aU  
    A Selection represents a portion of the data in a ``DataSource``, which
    can be visually manipulated in a plot.

    Selections are typically created by selecting points in a plot with
    a ``SelectTool``, but can also be programmatically specified.

    For most glyphs, the ``indices`` property is the relevant value to use.

    returnNonec                :     t                      j        |i | d S Nsuper__init__selfargskwargs	__class__s      7lib/python3.11/site-packages/bokeh/models/selections.pyr   zSelection.__init__<   %    $)&)))))    a  
    The "scatter" level indices included in a selection. For example, for a
    selection on a ``Circle`` glyph, this list records the indices of which
    individual circles are selected.

    For "multi" glyphs such as ``Patches``, ``MultiLine``, ``MultiPolygons``,
    etc, this list records the indices of which entire sub-items are selected.
    For example, which indidual polygons of a ``MultiPolygon`` are selected.
    )defaulthelpz
    The point indices included in a selection on a ``Line`` glyph.

    This value records the indices of the individual points on a ``Line`` that
    were selected by a selection tool.
    a  
    The detailed point indices included in a selection on a ``MultiLine``.

    This value records which points, on which lines, are part of a seletion on
    a ``MulitLine``. The keys are the top level indices (i.e., which line)
    which map to lists of indices (i.e. which points on that line).

    If you only need to know which lines are selected, without knowing what
    individual points on those lines are selected, then you can look at the
    keys of this dictionary (converted to ints).
    )indexij
flat_index

    )r"   r   r   )__name__
__module____qualname____doc__r   r	   r   indicesline_indicesr   r
   multiline_indicesr   r   image_indices__classcell__r   s   @r   r   r   /   s        	 	* * * * * * c#r ) 	 	 	G 3sB . 	 	 	L VSSXXr 
A 
	 
	 
	 DcSCCHHH P 	 	 	MMMMMr    r   c                  $     e Zd ZdZd fdZ xZS )r   r'   r   r   c                :     t                      j        |i | d S r   r   r   s      r   r   zSelectionPolicy.__init__g   r   r    r(   r)   r*   r+   r,   r   r1   r2   s   @r   r   r   `   sG         
* * * * * * * * * *r    r   c                  $     e Zd ZdZd fdZ xZS )r   z
    When a data source is shared between multiple renderers, a row in the data
    source will only be selected if that point for each renderer is selected. The
    selection is made from the intersection of hit test results from all renderers.

    r   r   c                :     t                      j        |i | d S r   r   r   s      r   r   zIntersectRenderers.__init__t   r   r    r(   r5   r2   s   @r   r   r   k   G         * * * * * * * * * *r    r   c                  $     e Zd ZdZd fdZ xZS )r   z
    When a data source is shared between multiple renderers, selecting a point on
    from any renderer will cause that row in the data source to be selected. The
    selection is made from the union of hit test results from all renderers.

    r   r   c                :     t                      j        |i | d S r   r   r   s      r   r   zUnionRenderers.__init__   r   r    r(   r5   r2   s   @r   r   r   x   r8   r    r   )
__future__r   logging	getLoggerr)   logcore.has_propsr   core.propertiesr   r   r   r	   r
   r   modelr   __all__r   r   r   r    r    r   <module>rD      sr   # " " " " " g!! & % % % % %                     /	 /	 /	 /	 /	 /	 /	 /	b 
* * * * *e * * 
*
* 
* 
* 
* 
* 
* 
* 
*
* 
* 
* 
* 
*_ 
* 
* 
* 
* 
*r    