Source code for highcharts_core.options.chart.reset_zoom_button
from typing import Optional
from validator_collection import validators
from highcharts_core import constants, errors
from highcharts_core.decorators import class_sensitive
from highcharts_core.metaclasses import HighchartsMeta
from highcharts_core.utility_classes.position import Position
[docs]class ResetZoomButtonOptions(HighchartsMeta):
"""Configuration settings for the button that appears after a selection zoom,
allowing the user to reset zoom."""
def __init__(self, **kwargs):
self._position = None
self._relative_to = None
self._theme = None
self.position = kwargs.get('position', None)
self.relative_to = kwargs.get('relative_to', None)
self.theme = kwargs.get('theme', None)
@property
def position(self) -> Optional[Position]:
"""The position of the button.
:rtype: :class:`Position` or :obj:`None <python:None>`
"""
return self._position
@position.setter
@class_sensitive(Position)
def position(self, value):
self._position = value
@property
def relative_to(self) -> Optional[str]:
"""What frame the button placement should be related to. Defaults to ``'plot'``.
Accepts:
* ``'plot'``
* ``'chart'``
* ``'plotBox'``
* ``'spacingBox'``
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._relative_to
@relative_to.setter
def relative_to(self, value):
if not value:
self._relative_to = None
else:
value = validators.string(value)
value = value.lower()
if value not in ['plot', 'chart', 'plotBox', 'spacingBox']:
raise errors.HighchartsValueError(f'relative_to accepts "plot", "chart", '
f'"plotBox", "spacingBox", or None. '
f'Received: {value}')
self._relative_to = value
@property
def theme(self) -> Optional[dict]:
"""A collection of attributes for the button.
The object takes SVG attributes like ``fill``, ``stroke``, ``stroke-width`` or
``r``, the border radius.
The theme also supports ``style``, a collection of CSS properties for the text.
Equivalent attributes for the hover state are given in JavaScript
``theme.states.hover``.
:rtype: :class:`dict <python:dict>`
"""
return self._theme
@theme.setter
def theme(self, value):
if not value or isinstance(value, constants.EnforcedNullType):
self._theme = None
else:
self._theme = validators.dict(value, allow_empty = False)
@classmethod
def _get_kwargs_from_dict(cls, as_dict):
kwargs = {
'position': as_dict.get('position', None),
'relative_to': as_dict.get('relativeTo', None),
'theme': as_dict.get('theme', None),
}
return kwargs
def _to_untrimmed_dict(self, in_cls = None) -> dict:
untrimmed = {
'position': self.position,
'relativeTo': self.relative_to,
'theme': self.theme
}
return untrimmed