Source code for highcharts_core.options.accessibility.keyboard_navigation.focus_border

from typing import Optional
from decimal import Decimal

from validator_collection import validators

from highcharts_core.decorators import class_sensitive
from highcharts_core.metaclasses import HighchartsMeta


[docs]class FocusBorderStyle(HighchartsMeta): """Style options for the focus border drawn around elements while navigating through them. .. warning:: Some browsers, in addition, draw their own borders for focused elements. These automatic borders can not be styled by Highcharts. In styled mode, the border is given the ``.highcharts-focus-border`` class. """ def __init__(self, **kwargs): self._border_radius = None self._color = None self._line_width = None self.border_radius = kwargs.get('border_radius', None) self.color = kwargs.get('color', None) self.line_width = kwargs.get('line_width', None) @property def border_radius(self) -> Optional[int | float | Decimal]: """The border radius to apply. Defaults to ``3``. :rtype: numeric or :obj:`None <python:None>` """ return self._border_radius @border_radius.setter def border_radius(self, value): self._border_radius = validators.numeric(value, allow_empty = True) @property def color(self) -> Optional[str]: """The color to apply. Defaults to ``'#335cad'``. :rtype: :class:`str <python:str>` or :obj:`None <python:None>` """ return self._color @color.setter def color(self, value): self._color = validators.string(value, allow_empty = True) @property def line_width(self) -> Optional[int | float | Decimal]: """The line width to apply. Defaults to ``2``. :rtype: numeric """ return self._line_width @line_width.setter def line_width(self, value): self._line_width = validators.numeric(value, allow_empty = True) @classmethod def _get_kwargs_from_dict(cls, as_dict): kwargs = { 'border_radius': as_dict.get('borderRadius', None), 'color': as_dict.get('color', None), 'line_width': as_dict.get('lineWidth', None) } return kwargs def _to_untrimmed_dict(self, in_cls = None) -> dict: untrimmed = { 'borderRadius': self.border_radius, 'color': self.color, 'lineWidth': self.line_width } return untrimmed
[docs]class FocusBorder(HighchartsMeta): """Options for the focus border drawn around elements while navigating through them. """ def __init__(self, **kwargs): self._enabled = None self._hide_browser_focus_outline = None self._margin = None self._style = None self.enabled = kwargs.get('enabled', None) self.hide_browser_focus_outline = kwargs.get('hide_browser_focus_outline', None) self.margin = kwargs.get('margin', None) self.style = kwargs.get('style', None) @property def enabled(self) -> Optional[bool]: """If ``True``, enables the focus border for the chart. Defaults to ``True``. :returns: Flag enabling or disabling the focus border around chart elements during navigation. :rtype: :class:`bool <python:bool>` or :obj:`None <python:None>` """ return self._enabled @enabled.setter def enabled(self, value): if value is None: self._enabled = None else: self._enabled = bool(value) @property def hide_browser_focus_outline(self) -> Optional[bool]: """If ``True``, hides the default browser-generated focus border. Defaults to ``True``. :returns: Flag indicating whether to hide the default browser focus border. :rtype: :class:`bool <python:bool>` or :obj:`None <python:None>` """ return self._hide_browser_focus_outline @hide_browser_focus_outline.setter def hide_browser_focus_outline(self, value): if value is None: self._hide_browser_focus_outline = None else: self._hide_browser_focus_outline = bool(value) @property def margin(self) -> Optional[int | float | Decimal]: """The focus border margin around the elements. Defaults to ``2``. :returns: The focus border margin around the elements. :rtype: numeric or :obj:`None <python:None>` """ return self._margin @margin.setter def margin(self, value): self._margin = validators.numeric(value, allow_empty = True) @property def style(self) -> Optional[FocusBorderStyle]: """Style options for the focus border drawn around elements while navigating through them. .. warning:: Some browsers, in addition, draw their own borders for focused elements. These automatic borders can not be styled by Highcharts. In styled mode, the border is given the ``.highcharts-focus-border`` class. :returns: Style options for the focus border. :rtype: :class:`FocusBorderStyle` or :obj:`None <python:None>` """ return self._style @style.setter @class_sensitive(FocusBorderStyle) def style(self, value): self._style = value @classmethod def _get_kwargs_from_dict(cls, as_dict): kwargs = { 'enabled': as_dict.get('enabled', None), 'hide_browser_focus_outline': as_dict.get('hideBrowserFocusOutline', None), 'margin': as_dict.get('margin', None), 'style': as_dict.get('style', None) } return kwargs def _to_untrimmed_dict(self, in_cls = None) -> dict: untrimmed = { 'enabled': self.enabled, 'hideBrowserFocusOutline': self.hide_browser_focus_outline, 'margin': self.margin, 'style': self.style } return untrimmed