from typing import Optional
from highcharts_core.decorators import class_sensitive
from highcharts_core.metaclasses import HighchartsMeta
from highcharts_core.utility_classes.javascript_functions import CallbackFunction
[docs]class AnnotationEvent(HighchartsMeta):
"""JavaScript callback functions that fire in response to annotation-related
events."""
def __init__(self, **kwargs):
self._add = None
self._after_update = None
self._click = None
self._remove = None
self.add = kwargs.get('add', None)
self.after_update = kwargs.get('after_update', None)
self.click = kwargs.get('click', None)
self.remove = kwargs.get('remove', None)
@property
def add(self) -> Optional[CallbackFunction]:
"""JavaScript callback function called when an annotation is added to a chart.
:returns: JavaScript callback function.
:rtype: :class:`CallbackFunction` or :obj:`None <python:None>`
"""
return self._add
@add.setter
@class_sensitive(CallbackFunction)
def add(self, value):
self._add = value
@property
def after_update(self) -> Optional[CallbackFunction]:
"""JavaScript callback function called when an annotation is updated (e.g. drag
and dropped or resized by control points).
:returns: JavaScript callback function.
:rtype: :class:`CallbackFunction` or :obj:`None <python:None>`
"""
return self._after_update
@after_update.setter
@class_sensitive(CallbackFunction)
def after_update(self, value):
self._after_update = value
@property
def click(self) -> Optional[CallbackFunction]:
"""JavaScript callback function called when an annotation is clicked.
:returns: JavaScript callback function.
:rtype: :class:`CallbackFunction` or :obj:`None <python:None>`
"""
return self._click
@click.setter
@class_sensitive(CallbackFunction)
def click(self, value):
self._click = value
@property
def remove(self) -> Optional[CallbackFunction]:
"""JavaScript callback function called when an annotation is removed from the
chart.
:returns: JavaScript callback function.
:rtype: :class:`CallbackFunction` or :obj:`None <python:None>`
"""
return self._remove
@remove.setter
@class_sensitive(CallbackFunction)
def remove(self, value):
self._remove = value
@classmethod
def _get_kwargs_from_dict(cls, as_dict):
kwargs = {
'add': as_dict.get('add', None),
'after_update': as_dict.get('afterUpdate', None),
'click': as_dict.get('click', None),
'remove': as_dict.get('remove', None)
}
return kwargs
def _to_untrimmed_dict(self, in_cls = None) -> dict:
untrimmed = {
'add': self.add,
'afterUpdate': self.after_update,
'click': self.click,
'remove': self.remove
}
return untrimmed