from methanal.view import FormInput, TextInput


class FilteredTextInput(TextInput):
    """
    A L{TextInput} that allows filtering the input.
    """
    jsClass = u'FlyingCircus.Widgets.FilteredTextInput'

    def __init__(self, expression, **kw):
        super(FilteredTextInput, self).__init__(**kw)
        self.expression = expression

    def getArgs(self):
        return {u'expression': self.expression}


class VerifiedPasswordInput(FormInput):
    """
    Password input with confirmation.
    """
    fragmentName = 'verified-password-input'
    jsClass = u'FlyingCircus.Widgets.VerifiedPasswordInput'
