import _plotly_utils.basevalidators


class EasingValidator(_plotly_utils.basevalidators.EnumeratedValidator):
    def __init__(
        self, plotly_name="easing", parent_name="layout.slider.transition", **kwargs
    ):
        super(EasingValidator, self).__init__(
            plotly_name=plotly_name,
            parent_name=parent_name,
            edit_type=kwargs.pop("edit_type", "arraydraw"),
            role=kwargs.pop("role", "info"),
            values=kwargs.pop(
                "values",
                [
                    "linear",
                    "quad",
                    "cubic",
                    "sin",
                    "exp",
                    "circle",
                    "elastic",
                    "back",
                    "bounce",
                    "linear-in",
                    "quad-in",
                    "cubic-in",
                    "sin-in",
                    "exp-in",
                    "circle-in",
                    "elastic-in",
                    "back-in",
                    "bounce-in",
                    "linear-out",
                    "quad-out",
                    "cubic-out",
                    "sin-out",
                    "exp-out",
                    "circle-out",
                    "elastic-out",
                    "back-out",
                    "bounce-out",
                    "linear-in-out",
                    "quad-in-out",
                    "cubic-in-out",
                    "sin-in-out",
                    "exp-in-out",
                    "circle-in-out",
                    "elastic-in-out",
                    "back-in-out",
                    "bounce-in-out",
                ],
            ),
            **kwargs
        )


import _plotly_utils.basevalidators


class DurationValidator(_plotly_utils.basevalidators.NumberValidator):
    def __init__(
        self, plotly_name="duration", parent_name="layout.slider.transition", **kwargs
    ):
        super(DurationValidator, self).__init__(
            plotly_name=plotly_name,
            parent_name=parent_name,
            edit_type=kwargs.pop("edit_type", "arraydraw"),
            min=kwargs.pop("min", 0),
            role=kwargs.pop("role", "info"),
            **kwargs
        )
