#ifndef NumberInputType_h
#define NumberInputType_h
#include "TextFieldInputType.h"
namespace WebCore {
class NumberInputType final : public TextFieldInputType {
public:
explicit NumberInputType(HTMLInputElement& element) : TextFieldInputType(element) { }
private:
const AtomicString& formControlType() const override;
void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
double valueAsDouble() const override;
void setValueAsDouble(double, TextFieldEventBehavior, ExceptionCode&) const override;
void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) const override;
bool typeMismatchFor(const String&) const override;
bool typeMismatch() const override;
bool sizeShouldIncludeDecoration(int defaultSize, int& preferredSize) const override;
float decorationWidth() const override;
bool isSteppable() const override;
StepRange createStepRange(AnyStepHandling) const override;
void handleKeydownEvent(KeyboardEvent*) override;
Decimal parseToNumber(const String&, const Decimal&) const override;
String serialize(const Decimal&) const override;
String localizeValue(const String&) const override;
String visibleValue() const override;
String convertFromVisibleValue(const String&) const override;
String sanitizeValue(const String&) const override;
bool hasBadInput() const override;
String badInputText() const override;
bool supportsPlaceholder() const override;
bool isNumberField() const override;
void minOrMaxAttributeChanged() override;
void stepAttributeChanged() override;
};
}
#endif // NumberInputType_h