# AUTO GENERATED FILE - DO NOT EDIT

from dash.development.base_component import Component, _explicitize_args


class Context(Component):
    """A Context component.
A component exposing the ability to subscribe, set and update a Glue42 Shared Context.

Keyword arguments:

- id (optional):
    The ID of this component. Used to identify Dash components in
    callbacks.  The ID must be unique across all components in an app.
    The ID is used as the context name to subscribe for.

- context (dict; optional):
    Holds the latest context update.

    `context` is a dict with keys:

    - data (dict; optional)

    - delta (dict; optional)

    - removed (list of strings; optional)

- set (dict; optional):
    Property for setting a new context value.  All properties of the
    specified context object will be removed and replaced with the
    ones supplied in the data property.  An object that will replace
    the context value completely.

- setProps (optional):
    Dash-assigned callback that should be called to report property
    changes to Dash in order to make them available for callbacks.

- update (dict; optional):
    Property for updating a shared context with the supplied object.
    Updates only the specified context properties. Any other existing
    context properties will remain intact.  If the context does not
    exist, then it will be created."""
    @_explicitize_args
    def __init__(self, id=Component.UNDEFINED, context=Component.UNDEFINED, update=Component.UNDEFINED, set=Component.UNDEFINED, **kwargs):
        self._prop_names = ['id', 'context', 'set', 'setProps', 'update']
        self._type = 'Context'
        self._namespace = 'dash_glue42'
        self._valid_wildcard_attributes =            []
        self.available_properties = ['id', 'context', 'set', 'setProps', 'update']
        self.available_wildcard_properties =            []
        _explicit_args = kwargs.pop('_explicit_args')
        _locals = locals()
        _locals.update(kwargs)  # For wildcard attrs
        args = {k: _locals[k] for k in _explicit_args if k != 'children'}
        for k in []:
            if k not in args:
                raise TypeError(
                    'Required argument `' + k + '` was not specified.')
        super(Context, self).__init__(**args)
